题解 | #最长无重复子数组#

最长无重复子数组

https://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param arr int整型一维数组 the array
     * @return int整型
     */
    public int maxLength (int[] arr) {
        int maxLen=1;
        int len=arr.length;
        if(len==0)return 0;
        HashSet<Integer>set=new HashSet<>();
        int left=0,right=0; //滑动窗口,右指针的元素加入set
        while(right<len){
            while(set.contains(arr[right])){ //右指针添加时发现重复的元素
                set.remove(arr[left++]); //删除左指针的元素,同时左指针右移,直到右指针添加元素是不重复的!
            }
            set.add(arr[right++]); //右指针的元素加入set
            if(set.size()>maxLen)maxLen=set.size();
        }
        return maxLen;
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
湫湫湫不会java:1.在校经历全删了2.。这些荣誉其实也没啥用只能说,要的是好的开发者不是好好学生3.项目五六点就行了,一个亮点一俩行,xxx技术解决,xxx问题带来xxx提升。第一页学历不行,然后啥有价值的信息也没有,到第二页看到项目了,第一个项目九点,第二个项目像凑数的俩点。总体给人又臭又长,一起加油吧兄弟
点赞 评论 收藏
分享
05-24 14:12
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务