面试算法-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;
    }
}
相关推荐
没有钱的钱仔7 小时前
协方差矩阵含义
算法·机器学习·矩阵
垆边人似月.7 小时前
华为机试题 :和为 K 的子数组个数
算法·leetcode·华为
三*一8 小时前
优化修整算法
前端·javascript·算法
达子6668 小时前
RUST 图解 第 3 章:通用编程概念(Common Programming Concepts)
开发语言·算法·rust
夏幻灵8 小时前
每日一题:LeetCode 165:比较版本号
算法·leetcode·职场和发展
道尔柯南8 小时前
C++ 面向对象编程入门:类和对象(上)
开发语言·c++·算法
Navigator_Z9 小时前
LeetCode //C - 1288. Remove Covered Intervals
c语言·算法·leetcode
码爸9 小时前
决策树介绍与示例
python·算法·机器学习
动词ing9 小时前
【题目练习】字符串相乘
算法
0+11110 小时前
算法 --链表
数据结构·算法·leetcode·链表