摘要: 一 题目:二进制中1的个数 二 可能引起死循环的解法 00001010>>2=00000010 10001010>>3=11110001 那么,问题来了:上面的方法如果输入一个负数,比如0x80000000,如果一直做右移运算,最终这个数字就会变成0xFFFFFFFF而陷入死循环。 三 避免死循环的 阅读全文
posted @ 2018-04-14 21:19 Fate0729 阅读(376) 评论(0) 推荐(0)
摘要: 一 题目:斐波那契数列 二 效率很低的解法 很多C/C++/C#/Java语言教科书在讲述递归函数的时候,大多都会用Fibonacci作为例子,因此我们会对这种解法烂熟于心 上述递归的解法有很严重的效率问题,通过求解第10项的调用过程图来分析: 从上图中不难发现:在这棵树中有很多结点是重复的,而且重 阅读全文
posted @ 2018-04-14 18:00 Fate0729 阅读(262) 评论(0) 推荐(0)
摘要: 一 题目:旋转数组中的最小数字 这道题最直观的解法并不难,从头到尾遍历数组一次,我们就能找出最小的元素。这种思路的时间复杂度显然是O(n)。但是这个思路没有利用输入的旋转数组的特性,肯定达不到面试官的要求。 我们注意到旋转之后的数组实际上可以划分为两个排序的子数组,而且前面的子数组的元素都大于或者等 阅读全文
posted @ 2018-04-14 17:06 Fate0729 阅读(290) 评论(0) 推荐(0)