面试算法
zhenkaiwang
这个作者很懒,什么都没留下…
展开
-
shuffle算法(洗牌算法)
How to generate a shuffle list for 1,2,…,100?思路如下:1.初始化数组;2.从后往前(或者从前往后,)产生一个随机数3.这个随机数代表的含义,是当前位置可以交换的下标 改天写下code,面试忙啊原创 2013-09-04 14:22:59 · 788 阅读 · 0 评论 -
汉诺塔问题和升级版汉诺塔
经典问题:有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,要把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方,请问至少需要多少次移动,设移动次数为H(n)。递归思想 H⑴ = 1H(n) = 2*H(n-1)+1 (n>1)那么我们很快就能得到H(n)的一般式:H(n) = 2^n - 1转载 2013-09-04 15:11:59 · 1310 阅读 · 0 评论 -
利用rand5()产生rand7() 扩展:randn()
原文在这里:http://www.cnblogs.com/dwdxdy/archive/2012/07/28/2613135.html 利用rand5()产生rand7().rand5()产生1到5的整数,rand7()产生1到7的整数.解决思路与上述的练习题是一样的.利用rand5()产生的一个整数空间,然后将其映射到[1,7]的整数空间上,映射时保证概率相等,且等于1/7.下面转载 2013-09-04 13:48:32 · 664 阅读 · 0 评论 -
How to check whether two rectangle are overlapping
transform the problem to check whether two intervals are overlapping and found out the right solution in a short time.转载 2013-09-04 16:21:49 · 596 阅读 · 0 评论 -
How to calculate the inversion of 0/1 array? 求逆序数
O(n) solution转载 2013-09-04 17:26:23 · 421 阅读 · 0 评论 -
后缀数组:最长重复子串 (marked)
最长重复子串 http://www.cppblog.com/unixfy/archive/2011/09/13/155668.aspx最长重复子串问题描述给定一个字符串,求出其最长重复子串例如 abcdabcd最长重复子串是 abcd最长重复子串可以重叠例如abcdabcda这时最长重复子串是 abcda中间的 a 是被重叠的。直观的解法是,首转载 2013-09-12 20:54:05 · 510 阅读 · 0 评论 -
判断单链表是否有环
1、如何判断一个链表是不是这类链表? 2、如果链表为存在环,如果找到环的入口点?1、思路设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇。(当然,fast先行头到尾部为NULL,则为无环链表)程序如下:bool IsExitsLoop(slist *hea转载 2013-09-15 16:17:48 · 528 阅读 · 0 评论 -
最短路径迪杰特斯拉算法
站位原创 2013-09-15 19:39:48 · 1960 阅读 · 0 评论