【发布时间】:2017-02-22 22:22:29
【问题描述】:
什么算法可以在 O(n) 时间内从数组中找到缺失的整数?
假设我们有一个数组 A,其元素的值范围为 {1,2,3...2n}。缺少一半的元素,因此长度为 A = n。
例如:
A = [1,2,5,3,10] , n=5
输出 = 4
【问题讨论】:
-
这是作业吗?
-
不,我学物理。这是业余时间。我从网上的家庭作业中找到了这个问题......
-
@hanko 允许多少额外存储空间:例如拥有一组标志很简单 - 如下面的答案所示。但是如何处理这个仅 O(1) 的额外存储并不明显。
-
我有一个真正使用 O(1) 额外存储和 O(N) 时间的解决方案,而不会从阵列中窃取位。这是快速选择的一种变体。