java - 在数组中查找重复元素?

标签 java c++ algorithm

看到一道面试题如下:

数组中有一个数重复,找出来

简单的解决方法如下:

for(int i=0;i<n;i++){
{  
    dup = false;
    for(j=0;j<n;j++){
        if(i!=j && a[i]= a[j]){
            dup = true;
        }

       if(dup == true)
          return a[i]
     }
}

但我想在 O(n log(n)) 和 O(n) 时间内实现它。我该怎么做?

最佳答案

对数组进行排序(可以在第一个 O(n Log n) 中完成,然后只需要对相邻元素进行比较。或者只是将数组放入哈希表中,如果找到第一个键就停止有一个现有条目。

关于java - 在数组中查找重复元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4895079/

相关文章:

java - 比较人名以检测相同性的算法

java - 当两个类同名时的类命名约定

java - 这是用 java 12 编写的,但是如果我在 java 15 上运行它,它会抛出异常错误

c++ - C/C++ 中字符的大小 ('a' )

c++ - 返回对类数据成员的引用,然后尝试更改该成员

python - 预处理机器学习数据

Java:重复、过度使用——问题?

Java Server Faces 从数组加载图像

c++ - 类型之间的转换

java - 任何可用于查找两个术语之间距离的 Java Tree API