
算法
ray_zhang_3
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
怎样检测链表中存在循环?
这应该是一个比较老的题目,在一次面试的过程中碰到过该题目,并没有能够给出最佳的答案。当时面试时没有其他条件的限制,却只能给出了几乎是最差的答案;当看到这个命题一步一步的限制的时候,我也只能给出第三步的答案。昨天有幸又翻到了这个题目,自己顺手做做,居然仍然没有太多的进步,最佳答案的思路在脑海里面已经不复存在,今天就拿这个题目温习一下,有兴趣的人也可以一步一步的思考下去看看。(在《编程之美》中也是转载 2010-03-02 20:12:00 · 2771 阅读 · 0 评论 -
10G个数找中位数
题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存)。关于中位数:数据排序后,位置在最中间的数值。即将数据分成两部分,一部分大于该数值,一部分小于该数值。中位数的位置:当样本数为奇数时,中位数=(N+1)/2 ; 当样本数为偶数时,中位数为N/2与1+转载 2010-05-15 15:21:00 · 1046 阅读 · 0 评论 -
给出1..n的一个排列,其中缺少2个元素,用O(1)的空间找到那2个缺失的元素
题目:<br /><br /> 给出1..n的一个排列,其中缺少2个元素,用O(1)的空间找到那2个缺失的元素。即你手头有n-2个数,乱序的,<br />它们是从1......n这n个数中选出来的,这n-2个数各自不相等,如何用O(1)的空间找到那两个元素。<br /><br />解答:<br /> 假设缺的那两个数为A和B,<br /> 第一步:求出A + B = M;<br /> 第二步:求出A * B = N;<br /> 第三步:根据第一步和第二步求出A,B。<br原创 2010-10-22 19:02:00 · 1411 阅读 · 1 评论 -
百度笔试题
<br />算法设计题<br />1)100亿个数据项,每个平均1024长度,内存10G,设计数据结构和算法,实现查询和插入操作,优先方便查询。<br /><br />2)算法题一,单入口单出口有向无环图,要求每条路径长度相等<br />1.矩阵存储有向图,列为起点,行为终点(N^2)<br />2. 找起点和终点:哪一列全为0,则为起点1;哪一行全为0,则为终点N。(N^2)<br />3. (动态规划)维护一数组,currmax[N],记录着每个点由起点到该点时最长的距离。即<br /> currmax原创 2010-10-22 20:02:00 · 735 阅读 · 1 评论