【发布时间】:2014-01-31 13:42:49
【问题描述】:
给定一个 1 到 100 的整数数组(随机插入),从数组中取出一个整数。找到缺失整数的最有效方法是什么?
【问题讨论】:
-
在 2.8k 代表时,人们会期望用户知道在一个问题中展示一些研究的证据......
标签: algorithm
给定一个 1 到 100 的整数数组(随机插入),从数组中取出一个整数。找到缺失整数的最有效方法是什么?
【问题讨论】:
标签: algorithm
如你所知,将所有整数相加:
(1+N)*N/2 = (1+100)*100/2 = 5050
现在减去数组中的总和 (S')。差异将是您寻找的一个缺失的数字(所以x = 5050 - S')。
时间复杂度为 O(N),无法更快解决,因为你肯定需要读取一次数组。
【讨论】:
MZetko 已经回答了基本情况,但这里有 4 个其他解决方案,其中数组可以排序或未排序
【讨论】: