面试算法-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;
    }
}
相关推荐
qq_1481153714 小时前
C++网络编程(Boost.Asio)
开发语言·c++·算法
2301_8042154114 小时前
内存映射文件高级用法
开发语言·c++·算法
爱喝白开水a14 小时前
春节后普通程序员如何“丝滑”跨行AI:不啃算法,也能拿走AI
java·人工智能·算法·spring·ai·前端框架·大模型
软件测试慧姐14 小时前
面试中常问的软件测试面试题
面试·职场和发展
张辰宇-14 小时前
AcWing 5 多重背包问题 II
算法
aygh14 小时前
Java八股文复习指南
java·面试·八股文·后端开发
小则又沐风a14 小时前
类和对象(C++)---上
java·c++·算法
季明洵15 小时前
动态规划及背包问题
java·数据结构·算法·动态规划·背包问题
busideyang15 小时前
函数指针类型定义笔记
c语言·笔记·stm32·单片机·算法·嵌入式
Wect15 小时前
LeetCode 215. 数组中的第K个最大元素:大根堆解法详解
前端·算法·typescript