面试算法-36-无重复字符的最长子串

题目

给定一个字符串 s ,请你找出其中不含有重复字符的 最长

子串

的长度。

示例 1:

输入: s = "abcabcbb"

输出: 3

解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

java 复制代码
class Solution {
    public int lengthOfLongestSubstring(String s) {
        int n = s.length();
        Map<Character, Integer> map = new HashMap<>();
        int j = 0;
        int max = 0;
        for (int i = 0; i < n; i++) {
            if (map.get(s.charAt(i)) == null) {
                map.put(s.charAt(i), 1);
                max = Math.max(max, i - j + 1);
            } else {
                map.remove(s.charAt(j++));
                i--;
            }
        }
        return max;
    }
}
相关推荐
如何原谅奋力过但无声几秒前
【力扣-Python-75】颜色分类(middle)
python·算法·leetcode
玖剹2 分钟前
哈希表相关题目
数据结构·c++·算法·leetcode·哈希算法·散列表
laocooon52385788614 分钟前
相对名次算法的处理python
开发语言·python·算法
Java水解18 分钟前
MySQL索引分析以及相关面试题
后端·mysql·面试
lixinnnn.28 分钟前
bfs: kotori和迷宫
算法·宽度优先
掘金安东尼42 分钟前
顶层元素问题:popover vs. dialog
前端·javascript·面试
掘金安东尼1 小时前
React 的新时代已经到来:你需要知道的一切
前端·javascript·面试
掘金安东尼1 小时前
TypeScript 严格性是非单调的:strict-null-checks 和 no-implicit-any 的相互影响
前端·面试
Felven1 小时前
A. Shizuku Hoshikawa and Farm Legs
算法
仰泳的熊猫1 小时前
1150 Travelling Salesman Problem
数据结构·c++·算法·pat考试