会员可以在此提问,尚新途老师有问必答

对大家有帮助的问答会被标记为“推荐”,看完课程过来浏览一下别人提的问题,会帮你学得更全面

截止目前,同学们一共提了128555个问题
魏天宇2023-10-28 13:15:54

到这就结束了吗,后边还会更新不


相关课程:JAVA 全系列/第二十九阶段:数据结构和算法BATJ大厂面试重难点/字符串和矩阵
Rally_YJ2023-07-26 09:28:25

老师这个为什么?image.png

相关课程:JAVA 全系列/第二十九阶段:数据结构和算法BATJ大厂面试重难点/绪论
留给明天的答卷2023-04-22 17:14:23

image.png

这一步为什么要加个1呢

相关课程:JAVA 全系列/第二十九阶段:数据结构和算法BATJ大厂面试重难点/线性表
兰林信风2022-11-04 11:42:59

老师,我错了,我错了。。。。

我现在才看清题目说的是找任意一个重复元素,没有说找出全部重复元素。

相关课程:JAVA 全系列/第二十九阶段:数据结构和算法BATJ大厂面试重难点/线性表
兰林信风2022-11-04 11:27:24
刚刚那个代码,我粘过去好像是乱的,重新粘一下:

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大厂面试重难点/线性表
兰林信风2022-11-04 11:22:30

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

题目说的是某些元素重复,而且重复几次也不知道,老师的这个算法可以解决只有一个重复元素的情况,但是如果是这样一个数组{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大厂面试重难点/线性表
Daisy2022-09-25 17:03:01

老师,这删除和插入的方法,都是指定下标,都是O(n),不是说有O(1)的方法吗?

相关课程:JAVA 全系列/第二十九阶段:数据结构和算法BATJ大厂面试重难点/线性表
阿飞2022-06-19 21:12:35

哎呀,老师,这就没有了,呜呜。

相关课程:JAVA 全系列/第二十九阶段:数据结构和算法BATJ大厂面试重难点/字符串和矩阵
阿飞2022-06-18 14:01:58

老师,这算法与数据结构的课程也太少了,好多诸如

二叉树,动态规划都没讲啊。话说,面试一般考几道算法题?

相关课程:JAVA 全系列/第二十九阶段:数据结构和算法BATJ大厂面试重难点/字符串和矩阵
陈晓川2021-11-15 21:13:59

这种是不太麻烦了


相关课程:JAVA 全系列/第二十九阶段:数据结构和算法BATJ大厂面试重难点/线性表
YW5ynGhxZWyWaGg=2021-09-11 11:47:09

image.png

这些在哪呀?

我咋没看到有,只讲了前三章?

相关课程:JAVA 全系列/第二十九阶段:数据结构和算法BATJ大厂面试重难点/绪论
YW5ynGhxZWyWaGg=2021-09-10 21:01:02

image.png

不是很懂,为什么22的结点的next指向44后,33的结点的next就不再指向44了,33.next没有 = null啊,不是应该还挂在那里吗

相关课程:JAVA 全系列/第二十九阶段:数据结构和算法BATJ大厂面试重难点/线性表
YW5ynGhxZWyWaGg=2021-09-07 19:59:33

删除尾结点的时候,时间复杂度不是o(n)吗

相关课程:JAVA 全系列/第二十九阶段:数据结构和算法BATJ大厂面试重难点/线性表
Kenji2021-04-17 10:19:48

为什么只到了第三章就没有了,和视频说的不一样???

相关课程:JAVA 全系列/第二十九阶段:数据结构和算法BATJ大厂面试重难点/绪论
wechatvp3RwE2021-04-10 21:55:18

第一章绪论哪里说有十章的啊  后面儿的呢。。。

相关课程:JAVA 全系列/第二十九阶段:数据结构和算法BATJ大厂面试重难点/字符串和矩阵

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