面试算法-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;
    }
}
相关推荐
有点。5 分钟前
C++广度优先搜索(二)-练习题
c++·算法·宽度优先
疯狂打码的少年17 分钟前
【数据结构】队列的应用:循环队列
数据结构·笔记·算法
程序员爱钓鱼25 分钟前
Go 输入输出详解
后端·面试·go
Winner_hwx32 分钟前
python拓展
算法
程序员爱钓鱼33 分钟前
Rust 生命周期详解:生命周期标注、约束与真实项目应用
后端·面试·rust
TAN-90°-42 分钟前
Deep Learning for Computer Vision——Image Classification with Linear Classifiers
python·深度学习·算法·计算机视觉·线性回归
狂师1 小时前
用AI做自动化测试,哪些是真不行,哪些是你不会用?
人工智能·面试·测试
阿pin1 小时前
Java随笔-红黑树
java·python·算法·红黑树
Hi李耶1 小时前
【LeetCode】17.电话号码的字母组合
算法·leetcode·职场和发展
江畔柳前堤10 小时前
大语言模型分布式训练:从并行策略到万卡工程的系统梳理
人工智能·分布式·深度学习·算法·目标检测·机器学习·语言模型