leetcode3 无重复字符的最长子串

/**
思路:双指针算法,第一个两个指针之间维护一个字符串,保证其中没有相同字符

*/


class Solution {
    public int lengthOfLongestSubstring(String s) {
        int Max = 0,j=0;
        Map<Character,Integer> m = new HashMap<>();
        for(int i = 0;i<s.length();i++){
            char c = s.charAt(i);
            if(!m.containsKey(c)){
                m.put(c,1);
            }else{
                m.put(c,m.get(c)+1);
            }
            while(m.get(c)>1){
                m.put(s.charAt(j),m.get(s.charAt(j++))-1);
            }
            Max = Math.max(Max,i-j+1);
        }
        return Max;
    }
}
posted @ 2020-12-10 23:50  void-white  阅读(63)  评论(0)    收藏  举报