美文网首页
3.(滑动窗口)没有重复字符的最长字串

3.(滑动窗口)没有重复字符的最长字串

作者: Ching_Lee | 来源:发表于2018-03-17 21:37 被阅读0次


思想:
没有重复字符,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;
    }
}

相关文章

网友评论

      本文标题:3.(滑动窗口)没有重复字符的最长字串

      本文链接:https://www.haomeiwen.com/subject/tqsfqftx.html