使用O(n)时间和O(1)空间从数组中查找缺失的数字

时间:2013-08-04 18:54:23

标签: c++ algorithm time-complexity space-complexity

我们有一个从1到100的数字数组。缺少两个数字。使用O(n)时间和O(1)空间查找这两个数字。注意到数组中的那些数字没有排序。 例如: 让一个数组[4,缺少,1,缺少,2] 如您所见,缺失的是3和5.假设从1到5的数字数组和两个数字丢失。实际上,没有3和5就是[4,1,2]。

所以,我不知道如何解决这个问题。有人可以帮助我吗?我的编程语言是c ++。这是数组:

  {p> {24,44,19,92,1,18,28,50,88,5,52,11,76,39,82,85,65,93,98,4,72,94,45, 59,48,46,47,67,87,99,14,70,80,25,20,22,21,41,77,73,2,13,36,6,27,81,29,62, 8,35,32,49,10,100,90,78,30,34,51,9,43,58,26,33,64,15,17,57,12,56,61,79,75, 97,84,42,55,83,91,86,38,89,96,74,23,7,68,60,16,66,69,53,3,71,37,63,54,95}

1 个答案:

答案 0 :(得分:-2)

对数组进行排序,迭代数组字段,与每个步骤增加的计数器i进行比较,如果i与向量中的字段push_back(i)不同。