面试算法-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;
    }
}
相关推荐
张元清2 分钟前
React 19 Hooks:新特性及高效使用指南
前端·javascript·面试
jing-ya2 分钟前
day 49 图论part1
算法·深度优先·图论
想吃火锅100510 分钟前
【leetcode】98.验证二叉搜索树
算法·leetcode·职场和发展
一叶落43811 分钟前
【LeetCode 172】阶乘后的零(C语言详解 | 数学规律 + 对数时间复杂度)
c语言·数据结构·算法·leetcode·动态规划
自信1504130575912 分钟前
数据结构初阶——二叉树之——堆的实现
c语言·数据结构·算法
!停20 分钟前
数据结构算法—归并排序
数据结构·算法
骇客野人20 分钟前
机器学习线性回归算法是入门机器学习理解人工智能模型很好示例
人工智能·算法·机器学习
Trouvaille ~27 分钟前
【贪心算法】专题(三):排序、博弈与区间的贪婪法则
c++·算法·leetcode·青少年编程·面试·贪心算法·蓝桥杯
Sakinol#33 分钟前
Leetcode Hot 100 —— 二叉树 part02
算法·leetcode
N1_WEB38 分钟前
HDU:杭电 2017 复试真题汇总
算法