可能重复:
Find two missing numbers
我一直在思考,似乎无法得到答案...所以一个数组有n-2个唯一整数,范围从1到n和O(1)空间以及空间给出了数组使用的数据。如何在O(n)时间内找到数组中缺少的从1到n的两个整数?
例如,a = [4,3,1,6]和O(1)额外空间 你怎么能在O(n)时间内找到2,5?
答案 0 :(得分:3)
这是一个想法:只需保留一些统计信息,为您提供有关缺失数字的信息。例如,如果您将所有数字的总和计算为S,则:
(1+2+..+N) - S = a+b
其中a和b是您缺少的号码。在您的示例中,您将获得:
1+2+3+4+5+6 - 4+3+1+6 = 7 = a+b
您也可以这样做,例如,乘法和get:
(1*2*..*N) / S = a*b
在你的情况下:
(1*2*3*4*5*6) / 72 = 10 = a*b
所以答案是2和5。
基本上你可以用这种方式使用很多统计数据......