老师,看完老师的讲解思路我有个问题:

题目说的是某些元素重复,而且重复几次也不知道,老师的这个算法可以解决只有一个重复元素的情况,但是如果是这样一个数组{0,3,2,2,3,3}(这个数组也是满足题目条件的),就会出现如果直接return2,就找不到重复元素3,如果不直接return结束循环,那么arr[1]永远都是2,不满足arr[1]=1,i就没法++;就会一直循环。(这就是我想问的问题,不知道我理解的对不对)。

下面这个是我加了一些东西的,麻烦您帮我看一些,谢谢。


Test04 {
    (String[] args) {
        [] arr = {}start = System.()List repeatNumber = (arr)end = System.()System..println(repeatNumber)System..println(end-start)}


    List<Integer> ([] arr){
        List<Integer> list = ArrayList<>()(arr == || arr.== ){
            list.add(-)list}

        (i =i<arr.){
            (arr[i] < || arr[i] >= arr.){
                list.add(-)list}

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

        (list.size()==){
            list.add(-)list}{
            list}
    }


    List<Integer> ([] arr){
        List<Integer> list = ArrayList()(i = i<arr.i++){
            (j = i+j<arr.j++){
                (arr[i] == arr[j]){
                    (!list.contains(arr[i])){
                        list.add(arr[i])}
                    }
            }
        }
        list}


}


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

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