算法设计——问一个算法题(算法导论的作业题) (转载自水木清华Programming)
来源:互联网 发布:网络存储技术 编辑:程序博客网 时间:2024/06/04 01:18
有一个数组A[1...n],数组元素为0到n之间的整数,并且没有重复的。那么这个数组肯定缺失0到n之间的某一个整数。我们可以在时间复杂度为O(n)的情况下找出这个整数:假设一辅助数组B[0...N],把A按元素大小读到B中,再扫描一遍B则知道A中缺失了哪个整数。
现在,我们假设不存在一次读A中一个元素的操作,A中的每个元素是二进制存放的,只存在这样一个常数操作OPERATION1:读A[i]的第j位。
那么,我们只利用OPERATION1,如何在时间复杂度O(n)内找出A中究竟缺失哪个整数?
------------------------------------------------------------------------------------------------------------------------
very easy
假设是32 位的, 定义C[32]
C[i]统计 这个数组元素 i位的个数
统计完求和
31
------
/
sum1 = / C[i] * 2^i
------
i = 0
sum = 1+ 2+....+n
sum - sum1即可
- 算法设计——问一个算法题(算法导论的作业题) (转载自水木清华Programming)
- 遗传算法导论(转载)
- 算法导论-动态规划(dynamic programming)
- 算法的用处(转载自李开复)
- 小评《算法导论》(转载)
- 跟着《算法导论》学习——动态规划法(Dynamic programming)
- 算法入门章——引出贯穿《算法导论》全书的算法分析和设计框架
- 算法导论—贪心算法
- KMP算法(《算法导论》)
- 【算法】算法导论(一)
- 算法导论(四)——算法和分析技术
- 算法导论(六)——图算法
- Dijkstra算法——《算法导论》学习心得(十三)
- 算法导论(二)——排序算法整理
- 算法导论(八)——动态规划&贪婪算法
- 算法导论—排序算法学习(1)
- 算法导论—排序算法学习(2)
- 算法导论—排序算法学习(3)
- MPEG-4首任主席Reader:中国应尽快发布实施AVS
- .Net 中通用的FormatString格式符整理
- [B原创] Install Gentoo From Stage1 - Part 3
- 疑惑
- [转贴】十大职场困惑出炉 十帖妙方镇痛(上)
- 算法设计——问一个算法题(算法导论的作业题) (转载自水木清华Programming)
- 日期对话框的JS
- Google考题试解 - DrawLines
- 【转贴】十大职场困惑出炉 十帖妙方镇痛(下)
- struts的结构
- MAIGO的同济题解1
- 工作近半年的感受
- MAIGO的同济题解2
- [转]技术人员的最终出路