面试算法-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;
    }
}
相关推荐
ShineWinsu1 小时前
对于C++:继承的解析—上
开发语言·数据结构·c++·算法·面试·笔试·继承
pp起床1 小时前
动态规划 | part05
算法·动态规划
GuangHeAI_ATing2 小时前
国密算法SSD怎么选?这3款国产固态硬盘安全又高速
算法
雨泪丶2 小时前
代码随想录算法训练营-Day34
算法
莫寒清2 小时前
ThreadLocal
java·面试
Yzzz-F2 小时前
牛客寒假算法训练营2
算法
甄心爱学习3 小时前
【python】获取所有长度为 k 的二进制字符串
python·算法
iAkuya3 小时前
(leetcode)力扣100 76数据流的中位数(堆)
算法·leetcode·职场和发展
键盘鼓手苏苏3 小时前
Flutter for OpenHarmony: Flutter 三方库 ntp 精准同步鸿蒙设备系统时间(分布式协同授时利器)
android·分布式·算法·flutter·华为·中间件·harmonyos
董董灿是个攻城狮3 小时前
AI 视觉连载5:传统 CV 之均值滤波
算法