
校招季
文章平均质量分 66
安菲拉尔
这个作者很懒,什么都没留下…
展开
-
校招季——编程题目(8-9)
2013/08/18,后天就回本部准备校招了,争取今天能将题目总结到70题。8. 最大子序列和题目:输入一个长度为n的序列,其中元素有正有负,求其中序列和最大的连续子序列,如果不存在序列和为正数的连续子序列,返回0。解答:方法一:思路:遍历所有子序列,求出序列和,找出其中和最大的那个。时间复杂度O(n3),空间复杂度O(1)。方法二:思路:先求出长原创 2013-08-18 21:10:47 · 787 阅读 · 0 评论 -
校招季——编程题目(14) 逆序数
14. 逆序数(题目043)题目:计算一个全由大写字母组成的字符串的逆序数。解答:求逆序数和排序的思路是类似的,稳定的排序算法都可以用来计算逆序数。方法1:最直接的方法,采用冒泡排序和插入排序的思路,一共需要遍历(n-1)*(n-2)次,比较慢。方法2:利用归并排序的思想加速这个过程。一个序列的逆序数等于它的两个递归子过程产生的逆序数与合并过程产生的逆序数之和。在合原创 2013-09-03 20:28:08 · 1294 阅读 · 0 评论 -
校招季——编程题目(15、16) 约瑟夫问题 最大子矩阵和
15. 约瑟夫问题(题目042)题目:n个人围成一圈,从第一个开始报数,第m个将被杀掉,最后剩下一个,其余人都将被杀掉。求最后剩下的人的序号。例如n=6,m=5,被杀掉的人的序号为5,4,6,2,3。最后剩下1号。解答:思路:如果要打印整个过程,有3种方法:1. 链表法:产生长度为n的循环链表,然后每遍历m次输出当前序号,并删除节点,直到链表中只有原创 2013-09-07 11:10:57 · 1392 阅读 · 0 评论 -
校招季——Python笔记四
四. 字典1. 字典是由键值对组成的,键和值间用冒号隔开,项之间用逗号隔开,整个字典由大括号表示。2. 字典可以用dict创建,需要一个映射关系的参数(其他字典或包含多个元组的序列),也可以用关键字参数来创建字典。>>> dict1 = {'age':42, 'name':'Sam', 'city':'New York'}>>> dic原创 2013-08-31 09:58:33 · 720 阅读 · 0 评论 -
校招季——编程题目(73) 回文数
73. 回文数题目:1. 测试一个数是不是回文数。2. 逆转一个数的二进制表示。解答:对于问题1,方法1:用itoa将这个数转换成字符串,再测试这个字符串是不是回文字符串。方法2:用两个mask从两端提取数字再比较:int mask1 = /* 和x同位数,略 */, mask2 = 10;for ( ; mask1原创 2013-08-31 10:52:52 · 926 阅读 · 0 评论 -
校招季——编程题目(10-11)
10.最大子序列和题目:输入一个长度为n的序列,其中元素有正有负,求其中序列和最大的连续子序列,如果不存在序列和为正数的连续子序列,返回0。解答:方法一:思路:遍历所有子序列,求出序列和,找出其中和最大的那个。时间复杂度O(n3),空间复杂度O(1)。方法二:思路:先求出长度为n的辅助数组sum,其中sum[i]是data[0,i]的和,原创 2013-08-28 15:33:45 · 815 阅读 · 0 评论 -
校招季——Python笔记三
三. 字符串1. 字符串是不可变的。2. format类似于C语言printf中使用的格式化控制符,用法是fmt % tuple,只有元组和字典可以格式化多个值,序列只能格式化一个值。>>> fmt = "hello, %s, %s enough for ya? %d:%f">>> values = ("world", "hot原创 2013-08-29 21:43:17 · 839 阅读 · 0 评论 -
校招季——编程题目(12-13)
12. 快速求幂(题目047)题目:给定两个整数base和exp(非负整数),求base的exp次幂,要求O(lgN)的时间复杂度。解答:int FastPow(int base, int exp){ if (exp == 0) return 1; if (exp == 1) return base; in原创 2013-08-29 21:40:47 · 720 阅读 · 0 评论 -
校招季——Python笔记二
二. 列表和元组1. 有六种内建序列:列表、元组、字符串、Unicode字符串、buffer对象和xrange对象。2. 列表可以修改,元组不可以。一般可用列表代替元组,除了用作字典的键。列表用[]标识。3. 通用的序列操作包括:索引、分片、加、乘、包含某序列。4. 序列的正序号从0开始向右,负序号从-1开始向左。原创 2013-08-28 15:21:04 · 723 阅读 · 0 评论 -
校招季——编程题目(1-2)
2013/08/12,秋季校招准备工作第一天。1. 与K有关的数题目:输入正整数K与N,求出不大于N的与K有关的数的数目。与K有关的意思是:是K的非0整数倍或数字中包含K(如123中包含12和23等)。解答:先判断i能否被K整除,如果不能的话,用mask依次取i中长度为len(K)的一段与K对比。1234567原创 2013-08-12 21:01:07 · 1027 阅读 · 0 评论 -
校招季——Python笔记一
2013/08/15,第四天。开始学习《Python基础教程》一. 基础知识1. '/'执行普通除法,'//'执行整除,'%'执行求余,后两个也能用于浮点数,满足规律:p = q * t + r,其中p和t是被除数和除数,q和r是整除的商和余数。>>> 1/20.5>>> 1//20>>> -1//2-1>>> -1%2原创 2013-08-15 11:19:19 · 1010 阅读 · 0 评论 -
校招季——进程与线程的概念
2013/08/15,第四天。昨天总结完了《现代操作系统》的前几章,后面的部分看了一遍,实在不想记笔记了,太杂了。 第2章 进程与线程2.1 进程2.1.1进程模型一个进程就是一个正在执行程序的实例,包括程序计数器、寄存器和变量的当前值。理解进程的另一个角度是,用某种方法把相关的资源集中在一起。进程有存放程序正文和数据以及其它资源的地址空间,包括打开的文件、子进程原创 2013-08-15 09:40:33 · 1366 阅读 · 0 评论 -
校招季——编程题目(6-7)
2013/08/15,第四天6. 反转单词(题目007)题目:将字符串中的每个单词内的字母顺序倒转,其它字符不变解答:void ReverseString(char *s){ int n = strlen(s), start = -1, i; for (i = 0; i <= n; ++i) if (!isalpha(s[原创 2013-08-15 09:33:55 · 791 阅读 · 0 评论 -
校招季——操作系统的概念
2013/08/12,秋季校招准备工作第二天。1 什么是操作系统操作系统是一种运行在内核态的软件,它执行两个基本独立的任务:为应用程序提供一个资源集的清晰抽象,并管理这些硬件资源。作为扩展机器的操作系统,任务是隐藏硬件的复杂特性,呈现给程序良好、清晰、优雅、一致的抽象。作为资源管理者的操作系统,任务是在相互竞争的程序之间有序地控制对处理器、存储器及其他I/O接口设备的分配。原创 2013-08-13 19:04:28 · 1058 阅读 · 0 评论 -
校招季——编程题目(3-5)
2013/08/13,秋季校招准备工作第二天。3. 打乱数组题目:将一个长度为n的数组随机打乱。解答:思路:将数组内的每个元素与它所在位置到结尾之间的一个随机位置的元素交换:void Shuffle(int *data, int n){ int i; for (i = 0; i < n; ++i) Swap(&data原创 2013-08-13 23:31:41 · 769 阅读 · 0 评论 -
校招季——操作系统的存储管理
第3章 存储管理现在的存储器体系为分层存储器体系,操作系统的工作是将这个存储体系抽象为一个有用的模型并进行管理。3.1 无存储器抽象每个程序都直接访问物理内存。这种情况下,想在内存中同时运行两个程序是不可能的。这种系统中实现并行的一种方法是使用多线程来编程。运行多道程序的方法是操作系统将当前内存中内容保存到磁盘上,再读入下个程序,保证同时只有一个进程在运行。也可以在特殊硬件的原创 2013-09-03 20:47:18 · 1726 阅读 · 0 评论