面试算法-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;
    }
}
相关推荐
Fairy要carry13 小时前
面试08-“生产者-消费者” 模型实现并发 Agent
python·面试
2401_8579182914 小时前
C++中的访问者模式实战
开发语言·c++·算法
零雲14 小时前
java面试:Spring事务失效的场景有哪些?
java·数据库·面试
elseif12314 小时前
CSP-S提高级大纲
开发语言·数据结构·c++·笔记·算法·大纲·考纲
发现一只大呆瓜14 小时前
React-深度拆解 React路由:从实战进阶到底层原理
前端·react.js·面试
熊猫_豆豆14 小时前
Python 基于Dlib和OpenCV实现人脸融合算法+代码
图像处理·python·算法·人脸融合
发现一只大呆瓜14 小时前
React-手把手带你实现 Keep-Alive 效果
前端·react.js·面试
Book思议-14 小时前
【数据结构实战】双向链表:在指定位置插入数据
c语言·数据结构·算法·链表
lightqjx14 小时前
【算法】前缀和
c++·算法·leetcode·前缀和
窝子面14 小时前
LeetCode练题三:链表
算法·leetcode·链表