面试算法-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;
    }
}
相关推荐
Zguigo7 小时前
树的前序|中序|后序遍历【使用栈实现】
数据结构·算法
zhanghaha13147 小时前
HTML系列教程:4_什么是 HTML 元素(零基础超详细讲解)
前端·算法·html
TAN-90°-7 小时前
Deep Learning for Computer Vision——Training CNNs and CNN Architectures
人工智能·深度学习·神经网络·算法·机器学习·计算机视觉·cnn
0x3F(小茶)7 小时前
Tokenization(分词算法):一切大语言模型的地基
人工智能·算法·语言模型
Keven_117 小时前
算法札记:利用floyd判环算法优化SPFA判负环算法
算法·spfa判负环
程序员爱钓鱼8 小时前
Rust Trait Object详解:dyn Trait与动态分发
后端·面试·rust
mCell16 小时前
Lua 编程入门:从基础语法到元表
javascript·算法·lua
wuyk55518 小时前
98.C语言易混难点:字符数组与字符串指针的底层差异
c语言·开发语言·c++·stm32·嵌入式硬件·算法
用户479492835691518 小时前
字节Agent开发技术分享—旧会话越聊越笨,新会话又得重讲?我给 Matt Pocock Skill 炼了套《影分身之术》:本体想清楚,分身写代码,完事回来汇报
面试·agent