题目描述
解法:滑动窗口思想
设置i,j两个指针,分别表示窗口的左边界和右边界。maxSize记录无重复字串的最大长度。
// An highlighted block
class Solution {
public int lengthOfLongestSubstring(String s) {
int n = s.length();
Set set = new HashSet();
int maxSize = 0,i = 0,j = 0;
while(i < n && j < n){
if(!set.contains(s.charAt(j))){
set.add(s.charAt(j++));
maxSize = Math.max(maxSize,j - i);
}else{
set.remove(s.charAt(i++));
}
}
return maxSize;
}
}