This question already has answers here:
Find duplicate element in array in time O(n)

(24个答案)


4年前关闭。




我最近进行了一次面试,其中包括以下问题。请提供可能的解决方案帮助。

用Java编写一种方法,可以在不使用嵌套循环(for / while / dowhile等)且不使用库函数或标准API的情况下在整数数组中查找重复的元素。

最佳答案

嘿,以下解决方案的复杂度为O(n),并且工作正常。检查是否有帮助。

public class Main {
    public static void main(String[] args) {
        int a[] = new int[]{10,3,5,10,5,4,6};
        String distinctElement="";
        String repetitiveTerms="";
        for(int i=0;i<a.length;i++){
            if(i==0){
                distinctElement+=a[i]+" ";
            }
            else if(distinctElement.contains(""+a[i])){
                repetitiveTerms+=a[i]+" ";
            }
            else{
                distinctElement+=a[i]+" ";
            }
        }

    }
}

10-08 12:23