开发者社区 问答 正文

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

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

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

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

时间O(n 2)的简单解决方案是使用嵌套循环查找每个元素的重复项。 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-09 13:09:29 476 分享 版权
1 条回答
写回答
取消 提交回答
  • 我们也有原始数组int A[N];创建另一个第二个数组bool B[N],类型为bool=false。迭代第一个数组并设置B[A[i]]=true是否为false,否则为bing!

    2020-02-09 13:09:52
    赞同 展开评论
问答地址: