Passion and Patience

Work Hard, Play Hard

导航

Leetcode 无重复字符的最长子串

powcai的滑动窗口解决问题:不断向后滑动窗口,出现重复元素,重新计算窗口,巧妙利用map来记录先前出现的元素的位置索引

class Solution {
    public int lengthOfLongestSubstring(String s) {
        // 滑动窗口解决该问题
        int left = 0;
        int max = 0;
        Map<Character,Integer> map = new HashMap<Character,Integer>();
        for(int i =0;i<s.length();i++){
            if(map.containsKey(s.charAt(i))){
                left = Math.max(left,map.get(s.charAt(i))+1);
            }
            map.put(s.charAt(i),i);
            max = Math.max(max,i-left+1);
        }
        return max;
    }

}

posted on 2024-04-05 21:05  安静的聆  阅读(2)  评论(0编辑  收藏  举报