
算法面试
文章平均质量分 72
don_lvsml
这个作者很懒,什么都没留下…
展开
-
求子数组的连续最大积---面试精选
这几天看到这个问题,然后在网上没能找到完整的答案,http://blog.youkuaiyun.com/kay_zhyu/article/details/8875031#cpp,作者kay_zhyu给出了不错的思路,而且针对大部分测试时都能给出正确的答案,但是在正负小数比较多时,有些结果不对。其实质时,忽略了小数相乘时结果越来越小这个结论,当两个小数相乘时,乘积肯定没有当前这个数大,因而我们需要保原创 2013-11-04 16:50:24 · 733 阅读 · 0 评论 -
给定整数数组,相邻两个之间之差为1或者-1,求给定数在数组中的位置
给定整数数组,相邻两个之间之差为1或者-1,求给定数在数组中的位置。空间复杂度O(1),时间复杂度越优化越好。如{2,3,2,3,4,3,2,1,2,3,4,5,6},如要查找5,则返回11;再如{6,5,4,3,2,3,4,3,2,1,0},查找1,返回111.很自然的一种想法,即顺序查找,时间复杂度O(N)。2.考虑最优的算法,以{2,3,2,3,4,3,2,1,2,3,4原创 2014-02-18 18:23:58 · 1520 阅读 · 0 评论 -
优先队列(堆)的构建时间复杂度分析
本文以最小堆为例,构建堆的过程是首先初始化一个数组a,其中a[0]存数组的长度n,即第一个有效元素从a[1]开始,这样保证左孩子为2*i,右孩子为2*I+1;然后从(n - 1)/2开始,每次向下调整一个元素,直到n = 0。代码为://最小堆void HeapAdjust(int *a,int i){ int n = a[0]; int child; int p = a原创 2014-02-20 12:23:11 · 18842 阅读 · 2 评论 -
排序算法性能分析
一、基于比较的排序算法1.插入排序法直接插入排序,希尔排序,不常用的:Tree sort;Library sort:Patience sorting2.交换排序冒泡排序,快速排序,计数排序3.选择排序直接选择排序,堆排序4.归并排序归并排序二、不基于比较的排序算法基数排序,桶排序三、空间,时间复杂度,稳定性原创 2014-02-17 19:19:57 · 882 阅读 · 0 评论 -
2014.3.29腾讯实习生附加题
1.实现string到double的转换 此题类似于atoi函数,但是明显double为64位,而且支持小数,因而边界条件更加严格,要想写出正确而且完整的代码不容易。 此题可作为atoi的扩展题。 2.给定整型数组,其中每个元素表示木板的高度,木板的宽度都相同,求这些木板拼出的最大矩形的面积。并分析时间复杂度。 此题类似leetcode里面关于连通器的题,需要明确的原创 2014-04-13 11:36:07 · 1494 阅读 · 2 评论