面试算法-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;
    }
}
相关推荐
童园管理札记13 小时前
【记录模板】大班科学小游戏观察记录(盐主题:《会变魔术的盐》)
经验分享·深度学习·职场和发展·学习方法·微信公众平台
-Rane13 小时前
【C++】vector
开发语言·c++·算法
代码栈上的思考13 小时前
滑动窗口算法实战
算法
Eloudy13 小时前
直接法 读书笔记 06 第6章 LU分解
人工智能·算法·ai·hpc
想用offer打牌13 小时前
一站式了解火焰图的基本使用
后端·面试·架构
仰泳的熊猫13 小时前
题目1531:蓝桥杯算法提高VIP-数的划分
数据结构·c++·算法·蓝桥杯
刘琦沛在进步14 小时前
如何计算时间复杂度与空间复杂度
数据结构·c++·算法
m0_6727033114 小时前
上机练习第30天
数据结构·算法
9359614 小时前
机考31 翻译25 单词18
c语言·算法
SuperEugene14 小时前
错误处理与 try/catch:真实项目里应该捕什么错?
前端·javascript·面试