LeetCode Hot 100 --- 无重复字符的最长子串(java)

Posted 小样5411

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Hot 100 --- 无重复字符的最长子串(java)相关的知识,希望对你有一定的参考价值。

题目

代码

最优解

class Solution {
    public int lengthOfLongestSubstring(String s) {
        //注意它示例中的子串和子序列区别:子串是连续子串
        int length = s.length();
        int res = 0;
        //key->字符,value->字符对应索引
        Map<Character, Integer> map = new HashMap<>();
        for(int start = 0, end = 0; end < length; end++){
            char element = s.charAt(end);
            //是否已经存在element字符,已经存在,start就要到element后一位置,map.get(element) + 1就是对应索引(位置)
            if(map.containsKey(element)){
                start = Math.max(map.get(element) + 1, start);
            }
            res = Math.max(res, end - start + 1);//更新最大长度
            map.put(element, end);//添加不存在的元素
        }
        return res;
    }
}

以上是关于LeetCode Hot 100 --- 无重复字符的最长子串(java)的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode Hot 100 --- 无重复字符的最长子串(java)

leetcode的Hot100系列--3. 无重复字符的最长子串--滑动窗口

LeetCode 热题 HOT 1003. 无重复字符的最长子串

LeetCode 热题 HOT 1003. 无重复字符的最长子串

LeetCode 热题 HOT 1003. 无重复字符的最长子串

LeetCode 热题 HOT 1003. 无重复字符的最长子串