首页 > 其他分享 >leetcode3-无重复字符的最长子串

leetcode3-无重复字符的最长子串

时间:2022-08-14 19:15:29浏览次数:79  
标签:子串 字符 leetcode3 map int max left

无重复字符的最长子串

  • 滑动窗口

需要记录左边界left。当右边界移动的时候,如果新加入的字符已经存在,那么需要更新左边界,让left取左边界和上一个字符位置的最大值。
之后更新字符的最新位置,同时更新max

class Solution {
    public int lengthOfLongestSubstring(String s) {
        Map<Character, Integer> map = new HashMap<>();
        int left = -1, max = 0;
        for(int i = 0; i < s.length(); i++){
            char c = s.charAt(i);
            if(map.containsKey(c)){
                left = Math.max(left, map.get(c));
            }
            map.put(c, i);
            max = Math.max(max, i-left);
        }
        return max;
    }
}

标签:子串,字符,leetcode3,map,int,max,left
From: https://www.cnblogs.com/xzh-yyds/p/16586058.html

相关文章