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

最长无重复子数组

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



public class Solution {
    /**
     * 
     * @param arr int整型一维数组 the array
     * @return int整型
     */
    public int maxLength (int[] arr) {
        // write code here
        if(arr.length==0)
        {
            return 0;
        }
        HashMap<Integer,Integer> map=new HashMap<>();
        int left=0;
        int max=0;
        for(int i=0;i<arr.length;i++)
        {
            if(map.containsKey(arr[i]))
            {
               left=Math.max(left,map.get(arr[i])+1);
            }
            map.put(arr[i],i);
            if(max<(i-left+1))
               {
                   max=(i-left+1);
               }
                map.put(arr[i],i);
            
        }
        return max;
    }
}

left=Math.max(left,map.get(arr[i])+1); 这里一定要记得max,像abba这种情况,当我们录入第二个b的时候 left就会等于 1+1 ==2,但是后面又出现了一个a,这个时候如果是这种形式的话,left就会变成0+1 == 1也就相当于left左移了,这个时候的字串就变成了bba了

全部评论

相关推荐

面试了几家,全程问项目,八股一点都不问,可惜准备了这么久
独角仙梦境:现在感觉问八股像是中场休息一样的,问几个八股放松一下再上强度
点赞 评论 收藏
分享
迷茫的大四🐶:自信一点,我认为你可以拿到50k,低于50k完全配不上你的能力,兄弟,不要被他们骗了,你可以的
点赞 评论 收藏
分享
见见123:简历没有啥问题,是这个社会有问题。因为你刚毕业,没有工作经历,现在企业都不要没有工作经历的。社会病了。
点赞 评论 收藏
分享
如题
投递阿里巴巴集团等公司10个岗位 >
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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