一尘不染

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

algorithm

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

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

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

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


阅读 362

收藏
2020-07-28

共1个答案

一尘不染

我们也有原始数组int A[N];创建另一个第二个数组bool B[N],类型为bool=false。迭代第一个数组并设置B[A[i]]=true是否为false,否则为bing!

2020-07-28