面试算法-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;
    }
}
相关推荐
NAGNIP6 小时前
轻松搞懂全连接神经网络结构!
人工智能·算法·面试
NAGNIP6 小时前
一文搞懂激活函数!
算法·面试
董董灿是个攻城狮6 小时前
AI 视觉连载7:传统 CV 之高斯滤波实战
算法
前端Hardy11 小时前
面试官:JS数组的常用方法有哪些?这篇总结让你面试稳了!
javascript·面试
牛奶12 小时前
React 底层原理 & 新特性
前端·react.js·面试
牛奶12 小时前
ts随笔:面向对象与高级类型
前端·面试·typescript
牛奶12 小时前
React 基础理论 & API 使用
前端·react.js·面试
爱理财的程序媛12 小时前
openclaw 盯盘实践
算法
SuperEugene12 小时前
从 Vue2 到 Vue3:语法差异与迁移时最容易懵的点
前端·vue.js·面试