在数组中查找缺失整数的最有效方法

时间:2014-01-12 21:43:41

标签: algorithm

给定1到100的整数数组(随机插入),并从数组中取出一个整数。找到缺少的整数的最有效方法是什么?

2 个答案:

答案 0 :(得分:10)

如你所知整数,总算所有这些:

(1+N)*N/2 = (1+100)*100/2 = 5050

现在减去数组中的总和( S' )。差异将是您寻找的一个缺失的数字(所以x = 5050 - S')。

时间复杂度为O(N),无法更快地解决,因为您肯定需要一次读取数组。

答案 1 :(得分:3)

MZetko已经回答了基本案例,但这里有4个其他解决方案,可以对数组进行排序或排序

https://github.com/KartikTalwar/Algorithms/blob/master/Arrays/Find%20only%201%20missing%20number%20from%20an%20array/Find1MissingElementFromArray.py