刚刚那个代码,我粘过去好像是乱的,重新粘一下:

public class Test04 {
    public static void main(String[] args) {
        int[] arr = {0,3,1,2,5,4};
        long start = System.currentTimeMillis();
        List repeatNumber = getRepeatNumber1(arr);
        long end = System.currentTimeMillis();
        System.out.println(repeatNumber);
        System.out.println(end-start);

    }


    public static List<Integer> getRepeatNumber1(int[] arr){
        List<Integer> list = new ArrayList<>();

        //判断数组是否为空
        if(arr == null || arr.length == 0){
            list.add(-1);
            return list;
        }

        //通过循环遍历数组中的元素
        for(int i =0;i<arr.length;){
            //判断元素是否合法
            if(arr[i] < 0 || arr[i] >= arr.length){
                list.add(-1);
                return list;
            }

            if(arr[i] == i){
                i++;
            }else {
                if(arr[i] == arr[arr[i]]){
                    if(!list.contains(arr[i])){
                        list.add(arr[i]);
                    }else {
                        i++;
                    }
                } else {
                    int temp = arr[i];
                    arr[i] = arr[arr[i]];
                    arr[temp] = temp;
                }
            }
        }

        if(list.size()==0){
            list.add(-1);
            return list;
        }else {
            return list;
        }
    }


    public static List<Integer> getRepeatNumber2(int[] arr){
        List<Integer> list = new ArrayList();
        for (int i = 0;i<arr.length;i++){
            for (int j = i+1 ;j<arr.length;j++){
                if(arr[i] == arr[j]){
                    if(!list.contains(arr[i])){
                        list.add(arr[i]);
                    }
                    break;
                }
            }
        }
        return list;
    }


}
相关课程:JAVA 全系列>第二十八阶段:数据结构和算法BATJ大厂面试重难点>线性表>第二章_线性表_找数组中重复的元素

©2014-2023 百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备13018289号-12    营业执照    经营许可证:京B2-20212637