面试算法-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;
    }
}
相关推荐
想用offer打牌3 小时前
高并发下如何保证接口的幂等性
后端·面试·状态机
Wect5 小时前
LeetCode 130. 被围绕的区域:两种解法详解(BFS/DFS)
前端·算法·typescript
牛奶15 小时前
Vue 基础理论 & API 使用
前端·vue.js·面试
牛奶15 小时前
Vue 底层原理 & 新特性
前端·vue.js·面试
NAGNIP17 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
青青家的小灰灰21 小时前
深入理解事件循环:异步编程的基石
前端·javascript·面试
程序员清风1 天前
程序员兼职必看:靠谱软件外包平台挑选指南与避坑清单!
java·后端·面试
颜酱1 天前
单调栈:从模板到实战
javascript·后端·算法
UrbanJazzerati1 天前
Vue3 父子组件通信完全指南
前端·面试
UrbanJazzerati1 天前
Vue 3 纯小白快速入门指南
前端·面试