
数据结构&算法
冰清
天助自助者!
展开
-
求最大子序列和算法
<br />这是个比较经典的C语言算法问题。记得,在大二参加C语言比赛的时候,碰到过这个问题。当时就在网上学习了这么一个经典算法。但是到了现在已经有点儿遗忘,今天无意之中又看到了这道题,感觉很亲切,而且感觉到这个算法真的非常经典,所以还是决定收藏在博客中,希望自己能牢记这个问题。<br />int MaxSubsequenceSum(const int A[], int N){ int ThisSum, MaxSum, i; ThisSum = MaxSum = 0;原创 2010-09-08 21:31:00 · 731 阅读 · 0 评论 -
大数据量,海量数据 处理方法总结 (转)
大数据量的问题是很多面试笔试中经常出现的问题,比如baidu google 腾讯 这样的一些涉及到海量数据的公司经常会问到。 下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题。下面的一些问题基本直接来源于公司的面试笔试题目,方法不一定最优,如果你有更好的处理方法,欢迎与我讨论。 1.Bloom filter 适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集 基本原理及要点: 对于原理来说很简单转载 2010-09-28 19:44:00 · 680 阅读 · 0 评论 -
自己遇到的一些面试题总结(2)
<br />###############################<br />Q:找出第k大的数字所在的位置<br /> <br />A:<br />先找到第k大的数字,然后再遍历一遍数组找到它的位置。所以题目的难点在于如何最高效的找到第k大的数。<br /><br />我们可以通过快速排序,堆排序等高效的排序算法对数组进行排序,然后找到第k大的数字。这样总体复杂度为O(N logN)。<br /><br />我们还可以通过二分的思想,找到第k大的数字,而不必对整个数组排序。<br />从数组中随机原创 2010-10-09 17:28:00 · 1029 阅读 · 0 评论 -
面试中的逻辑题
<br /><br />A:超级推理 <br /><br /> 1、你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段 <br />,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你 <br />的工人付费? <br /> 2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。 <br /> 3、小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒, <br />小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。每 <原创 2010-10-09 21:53:00 · 7253 阅读 · 0 评论 -
自己遇到的一些面试题总结 (1)
<br />在网上看了些大公司的面试题,自己也在下面自己做做,现在把几道感觉不错的题贴出来,希望大家能共同学习。<br />每个题都是自己或网上的一些看法,如果谁有更好的想法,请留言提出来,谢谢各位了。<br /> <br />###############################<br />Q:删除字符串中多余的空格<br />给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。<br /> <br />A:<br />#include <iostream>using na原创 2010-10-07 19:31:00 · 1062 阅读 · 0 评论 -
用堆维护数组的中位数
<br /> <br /> <br />令数组L的中位数为m,用一个最大堆存储数组L中不大于m的元素,用一个最小堆存储数组L中不小于m的元素,其中这两个堆均不包含中位数m。每次往数组L插入新元素x时,若x<m,则将其插入最大堆,否则插入最小堆。若插入新元素后导致m不再是中位数(即两个堆的元素数目相差2个或2个以上),则将当前的中位数m插入到元素数量较少的那个堆中,然后令元素数量较多的那个堆的堆顶元素为新的中位数,并将该堆顶元素从堆中删除。原创 2010-10-08 18:11:00 · 1081 阅读 · 0 评论 -
KMP字符串模式匹配详解 (转)
<br /><br />转自:http://blog.youkuaiyun.com/Oneil_Sally/archive/2008/12/03/3440784.aspx<br /> <br /><br />KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。一.简单匹配算法先来看一个简单匹配算法的函数:int Index_BF ( char S [ ], char T [ ], int pos ){/转载 2010-10-08 20:08:00 · 614 阅读 · 0 评论