出题:Josephus
Cycle,约瑟夫环问题。k个数字连成一个环,第一个数字为1。首先从1开始计数删除第m个数字;然后从上次被删除的数字的下一个数字开始计数,删除第m个数字;重复进行第二步直到只剩下一个数字;输出最后剩下的一个数字;分析:解法1:考虑到问题的特殊性,可以使用哑元素表示删除的元素从...
分类:
其他好文 时间:
2014-05-27 01:35:42
阅读次数:
251
出题:要求实现层序遍历二元搜索树,并对比BFS与DFS的区别分析:层序遍历也就是由上至下,从左到右的遍历每一层的节点,类似于BFS的策略,使用Queue可以实现,BFS不能用递归实现(由于每一层都需要存储所有节点,所以非常耗用内存)。这段代码主要用于反映BFS与DFS的联系;解题:
1 class....
分类:
其他好文 时间:
2014-05-27 01:11:41
阅读次数:
398
出题:将一个数组最开始的k个(K小于数组大小N)元素照搬到数组末尾,我们称之为数组的旋转;现在有一个已经排序的数组的一个旋转,要求输出旋转数组中的最小元素,且时间复杂度小于O(N);分析:时间复杂度小于O(N)也就是不能用常规的遍历思路;可以将数组看成两个都是递增序列(假设为升序)的子数组,并且前半...
分类:
其他好文 时间:
2014-05-27 00:40:17
阅读次数:
283
机会是留给已经准备好的人
短码竞赛的机会你还是失去了,有机会去台湾的机会你也失去了,规则很简单,谁强谁去。没考算法题,5进3你都选不上,你该好好反思了。心态也不行,太久没敲代码了,平常做题不计时间,没想好就敲导致bug太多,实战经验太少,平常通过词典看英语,看纸质的英语你就sb了。水平这么弱,努力吧...
分类:
其他好文 时间:
2014-05-23 09:02:03
阅读次数:
240
找只出现一次的两个数
题目:
一个整型数组里除了两个数字只出现一次之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。...
分类:
其他好文 时间:
2014-05-22 13:43:26
阅读次数:
248
出题:反转链表(递归和非递归解法);分析:有递归跟非递归实现,注意对原始链表头节点的处理,因为其他节点都指向下一个节点,其需要指向NULL;解题: 1
struct Node { 2 int v; 3 Node *next; 4 }; 5 Node* NonRecur...
分类:
其他好文 时间:
2014-05-22 05:20:04
阅读次数:
310
出题:将输入的表示整数的字符串转变为对应的整数值;分析:每当右边增加一位,说明之前的sum应该高一个数量级,所以*10。由于这两个实现仅仅考虑正规的、正整数输入,所以需要一个Wrapper函数,其功能
主要处理:符号判断(第一个字符是-,+或者直接是数字);非法输入判断(是否有非"012345678...
分类:
其他好文 时间:
2014-05-22 04:48:02
阅读次数:
268
出题:输入一个整数,要求计算此整数的二进制表示中1的个数分析:如果整数表示为k,当其是负数的时候,使用10) {17 /**18 * 此判断条件可以替换为
k&1 == 119 * */20 ...
分类:
其他好文 时间:
2014-05-22 04:16:17
阅读次数:
331
出题:输入一个整数N,求从1到N这N个整数的十进制表示中‘1’出现的次数;分析:从左向右处理string表示的数字;当前数字长度为n,判断最左边一位数字字符;如果是0,则直接递归下一位;如果是1,则计数有两个来源,一个是n位数数字(实际就是除去最高位之后的数字大小,加上1,当其余位全部为0的时候),...
分类:
其他好文 时间:
2014-05-22 03:50:52
阅读次数:
265
出题:输入一个已经升序排序的数组和一个数字;要求在数组中查找两个数,这两个数的和正好等于输入的那个数字,输出任意一对数字就可以,要求时间复杂度是O(n);分析:对于升序排序的数组{…i…j…k…m……},只有可能是i+m=j+k(j和k可能是同一个数),所以可以从两边往中间收缩而忽视其他交叉相加的情...
分类:
其他好文 时间:
2014-05-19 12:04:14
阅读次数:
357