算法
lanhaoit
这个作者很懒,什么都没留下…
展开
-
子数组之和的最大值
子数组/子序列,而不是子集合//感谢网友firo //July、2010.06.05。 //Algorithm 1:时间效率为O(n*n*n) int MaxSubsequenceSum1(const int A[],int N) { int ThisSum=0 ,MaxSum=0,i,j,k; for(i=0;i转载 2014-03-28 18:49:56 · 433 阅读 · 0 评论 -
随机数选择
问题: 从0, 1 ,2 ... n-1中随机选择m个数,每个数选中的概率要求一样,而且不允许重复。选中的数按顺序输出。比如,0, 1, 2, 3, 4, 5中随机选3个数,如果选的是1,4, 5,那么输出的顺序也应该是1, 4, 5。每个数选中的概率是一样的。计算公式为 p(i) = (m - (m/n)*i)/ (n-i) = m/n,其中m - (m/n)*i 为剩余可选数的个数。原创 2014-03-29 08:49:17 · 1131 阅读 · 0 评论 -
解题笔记(2)——部分面试题解题思路
这几天在网上看到一篇关于算法面试题的博客,归纳的很好,有不少经典的题目,大部分来自《编程珠玑》、《编程之美》、《代码之美》三本书。这里给出书上的解答以及一些思考。如有不对的地方,希望得到高手的指点。【一】 时间受限大部分的面试题,都是对时间复杂度有所要求的,如果有涉及,“最快”一类的字样,毫无疑问,先上时空原理,用空间来换时间。Hash,大数组,一些辅助性的空间,都是首选。转载 2014-03-29 08:33:06 · 389 阅读 · 0 评论