专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

LeetCode 3. 无重复字符的最长子串

leetcode-cn.com/problems/lo…

81_1.png

思路1:构造一个map来保存每个字符最近一次出现的索引,并随时计算子串长度

思路2:滑动窗口

public int lengthOfLongestSubstring(String s) {
    // 字符串为空或为空串
    if (s == null || s.length() < 1) {
        return 0;
    }
    // 字符串长度大于0
    Map<Character, Integer> cMap = new HashMap<>();
    int startIdx = 0;
    int maxLen = 1;
    for (int i = 0; i < s.length(); i++) {
        char c = s.charAt(i);
        if (cMap.containsKey(c)) {
            // 例如:"abcabcbb",遍历到第2个a时,开始索引变为第1个a的下一个索引值
            int tmpStartIdx = cMap.get(c) + 1;
            // 例如:"abba",取最大的索引
            startIdx = startIdx > tmpStartIdx ? startIdx : tmpStartIdx;
        }
        cMap.put(c, i);
        int tmpMaxLen = i - startIdx + 1;
        maxLen = tmpMaxLen > maxLen ? tmpMaxLen : maxLen;
    }
    return maxLen;
}

文章永久链接:https://tech.souyunku.com/43471

未经允许不得转载:搜云库技术团队 » LeetCode 3. 无重复字符的最长子串

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们