面试算法-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;
    }
}
相关推荐
Baihai_IDP1 小时前
为什么 AI 巨头们放弃私有壁垒,争相拥抱 Agent Skills
人工智能·面试·llm
Moment1 小时前
Agent 开发本质上就是高级点的 CRUD
前端·后端·面试
颜酱11 小时前
图的数据结构:从「多叉树」到存储与遍历
javascript·后端·算法
哈里谢顿12 小时前
0305乒乓xx agent运维开发岗面试记录
面试
哈里谢顿12 小时前
0309面试二总结
面试
哈里谢顿12 小时前
0309面试一记录
面试
哈里谢顿12 小时前
0310面试二记录
面试
哈里谢顿13 小时前
0310面试记录一
面试
boooooooom15 小时前
讲清 Proxy + effect + track/trigger 流程
javascript·vue.js·面试
豆苗学前端16 小时前
彻底讲透浏览器缓存机制,吊打面试官
前端·javascript·面试