在时间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