【发布时间】:2011-09-25 10:41:59
【问题描述】:
可能重复:
Easy interview question got harder: given numbers 1..100, find the missing number(s)
如果您有一个大小为 10000 的数组,其中填充了从 1 到 10000 的整数,没有重复,并且您将该数组中的两个位置设置为 0。您如何确定这两个数字是什么?
例如: Array = {8,6,3,5,4,2,7,1};//为简单起见,用 1 到 8 的数字填充数组。
数组[0]=0; 数组[1]=0;
位置 Array[0] 和 Array[1] 是什么?
如果问题只有一个位置归零,那么问题就很简单了。您将从 1 到 8 的数字的总和(即 36)减去在将位置归零后将数组中的所有数字相加时得到的总和。
这不是作业问题。但我想我记得在大学时被问过这个问题。
【问题讨论】:
-
您有时间限制吗?这个问题在 O(n lg n) 时间或 O(n) 时间内用 O(n) 额外内存解决是微不足道的。
-
@Jonderry 是的。谢谢,我在发帖前尝试过搜索,但找不到。
标签: algorithm