★3. 无重复字符的最长子串

3. 无重复字符的最长子串

★3. 无重复字符的最长子串_第1张图片

思路:滑动窗口:

维护一个滑动窗口,有左边界和右边界。这个题是让求不重复的最长字串,所以就是求以每个字母为左边界,看右边界不重复的最右边。左边界肯定是逐次增大的,右边界也是,因为在l r内是不重复的,下次看l+1 和 r 再往后到rk(往后直到找到下一个重复的),那在l+1和r之间肯定也是无重复的,因为前面l ~ r是无重复的,所以这里也是。
那就左边界依次右移,然后右边界根据有没有重复的去右移,每次右边界定下来之后,取当前左右边界的长度,然后再取一个最大值即可。

Set

Set<Character> set = new HashSet<>();

ACCode

 
 

你可能感兴趣的:(力扣Hot100,算法,数据结构,leetcode)