

思想:
没有重复字符,right++。

出现重复字符,记录长度

i++,把重复字符剔除掉,没有重复字符记录

问题:
怎么判断没有重复,利用数组 freq[256]
class Solution {
public int lengthOfLongestSubstring(String s) {
int[] freq=new int[256];
int left=0,right=-1;
int res=0;
while(left<s.length()){
//右边频率是0,表示没被用过
if(right+1<s.length()&&freq[s.charAt(right+1)]==0){
right++;
//更新频率
freq[s.charAt(right)]++;
}
else{
freq[s.charAt(left)]--;
left++;
}
res=Math.max(res,right-left+1);
}
return res;
}
}