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;
}
}