leetcode-3 滑动窗口做法

class Solution {
    public int lengthOfLongestSubstring(String s) {
        int[] dict = new int[128];
        int len = s.length();
        if(len <= 1) return len;
        int re = 0, l = 0, r = 0;
        while(l < len && r < len) {
            if(dict[s.charAt(r)] == 0) {  
// 当其出现重复的时候,滑动窗口 l 向右滑动,直到找到重复字符
// 将其对应的下下标置0, 满足 r 向右滑动的条件,r向右继续滑动。
                dict[s.charAt(r)] = 1;
                r++;
            } else {
                dict[s.charAt(l)] = 0;
                l++;
            }
            re = Math.max(re, r - l);
        }
        
        return re;
    }
}

要吐了

你可能感兴趣的:(算法)