- 博客(4)
- 资源 (1)
- 收藏
- 关注
原创 忘我之乘积
题目:给你一个数组A[1..n],请你在O(n)的时间里构造一个新的数组B[1..n],使得B[i]=A[1]*A[2]*...*A[n]/A[i]。你不能使用除法运算。解法1;构建两个新的数组:C和D(为了方便解释,用了两个数组),C[i] = A[0]*…*A[i-1] = C[i-1]*A[i-1] D[i] = A[i+1]*…*A[n]
2013-07-31 20:20:37 687
原创 蓄水池抽样(Reservoir Sampling)问题
蓄水池抽样(Reservoir Sampling)问题分析问题:要求从N个元素中随机的抽取k个元素,其中N无法确定。这种应用的场景一般是数据流的情况下,由于数据只能被读取一次,而且数据量很大,并不能全部保存,因此数据量N是无法在抽样开始时确定的;但又要保持随机性,于是有了这个问题。所以搜索网站有时候会问这样的问题。这里的核心问题就是“随机”,怎么才能是随机的抽取元素
2013-07-30 22:13:38 1027
原创 多数算法(Majority Algorithm)
当一个序列中存在一个占大多数的的元素的时候(超过50%),该算法可以在O(1)空间和O(n)时间内找出这个元素。步骤:假设我们一开始从数组的开头,碰到某个元素的时候,就设置该元素为当前元素。当前出现的次数为1,后面,如果接着碰到的元素和该元素相同,则当前次数加1,否则减1。如果当前出现的次数为0,则表示当前元素不确定。如果结合我们有大多数元素这个前提的话,必然最后的结果是大于0的,而且最终
2013-07-29 16:41:19 5942 1
原创 求两个单链表的和
题目两个单链表(singly linked list),每一个节点里面一个0-9的数字, 输入就相当于两个大数了。然后返回这两个数的和(一个新list)。这两个输入的list 长度相等。 要求是:1. 不用递归。2. 要求算法在最好的情况下,只遍历两个list一次, 最差的情况下两遍。实现代码:public class AddSinglyLinkList {
2013-07-27 19:46:51 573
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人