在时间O(n)中找到数组中的重复元素

在工作面试中有人问我这个问题,我一直在想正确的答案。

您有一个从0到n-1的数字数组,其中一个数字被删除,并替换为数组中已有的一个数字,该数字与该数字重复。我们如何才能在时间 O(n)中

检测到此重复项?

例如,的数组4,1,2,3将变为4,1,2,2

时间 _O(n 2)_的简单解决方案是使用嵌套循环查找每个元素的重复项。

回答:

我们也有原始数组int A[N];创建另一个第二个数组bool

B[N],类型为bool=false。迭代第一个数组并设置B[A[i]]=true是否为false,否则为bing!

以上是 在时间O(n)中找到数组中的重复元素 的全部内容, 来源链接: utcz.com/qa/402606.html

回到顶部