面试算法-141-无重复字符的最长子串

题目

给定一个字符串 s ,请你找出其中不含有重复字符的 最长

子串

的长度。

示例 1:

输入: s = "abcabcbb"

输出: 3

解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

java 复制代码
class Solution {
    public int lengthOfLongestSubstring(String s) {
        int n = s.length();
        int left = 0;
        int right = 0;
        int maxLen = 0;
        Map<Character, Integer> map = new HashMap<Character, Integer>();
        while (left <= right && right < n) {
            Character chRight = s.charAt(right);
            if (map.get(chRight) == null) {
                map.put(chRight, 1);
                right++;
            } else {
                Character chLeft = s.charAt(left++);
                map.remove(chLeft);
            }

            maxLen = Math.max(maxLen, right - left);
        }
        return maxLen;
    }
}
相关推荐
亲爱的非洲野猪14 分钟前
令牌桶(Token Bucket)和漏桶(Leaky Bucket)细节对比
网络·算法·限流·服务
luckyCover22 分钟前
面试前来了解下TCP/IP网络模型吧~
前端·面试
NAGNIP28 分钟前
一文读懂LLAMA
算法
烧冻鸡翅QAQ30 分钟前
62.不同路径
算法·动态规划
番薯大佬31 分钟前
编程算法实例-冒泡排序
数据结构·算法·排序算法
专业抄代码选手32 分钟前
从 Fiber 到 DOM:深入理解 React 渲染
javascript·面试
queenlll33 分钟前
P2404 自然数的拆分问题(典型的dfs)
算法·深度优先
页面仔Dony33 分钟前
个人主页项目架构设计
面试·全栈
wydaicls34 分钟前
用函数实现方程函数解题
人工智能·算法·机器学习
·白小白35 分钟前
力扣(LeetCode) ——100. 相同的树(C语言)
c语言·算法·leetcode