【LeetCode】【算法】3. 无重复字符的最长子串

LeetCode 3. 无重复字符的最长子串

题目描述

给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。

思路

思路:滑动窗口+哈希表

  1. 定义两个指针i,j,快指针j先走,将遍历到的字符都加入到哈希表map中,并通过Math.max()来找到res, j-i中的最大值(最长重复子串)
  2. 若遇到某个字符,在map中已经出现过(重复了),则慢指针i直接走到j的位置

代码

java 复制代码
class Solution {
    public int lengthOfLongestSubstring(String s) {
        // 滑动窗口加哈希表
        Map<Character, Integer> map = new HashMap<>();
        int i = -1, res = 0, len = s.length();
        for (int j = 0; j < len; j++) {
            if (map.containsKey(s.charAt(j))) i = Math.max(i, map.get(s.charAt(j))); // 更新左指针
            map.put(s.charAt(j), j); // 哈希表记录
            res = Math.max(res, j - i); // 在遍历的过程中不断更新字符串长度
        }
        return res;
    }
}
相关推荐
weixin_307779133 小时前
从脚本执行到智能体协作:AI辅助测试能力的范式重构
运维·开发语言·人工智能·算法·测试用例
量化君也3 小时前
从回测到全自动实盘交易,全天候策略需要经历哪些改造?
大数据·人工智能·python·算法·金融
fox_lht3 小时前
第十五章 函数式语言:迭代器和闭包
开发语言·后端·学习·算法·rust
zhengzhouliuhaha4 小时前
智能医疗设备控费系统:以全院一体化管控,筑牢医疗资源“安全阀”
大数据·数据结构·人工智能·算法·安全·机器学习·软件需求
June`4 小时前
CUDA程序效率如何计算以及工具如何使用
算法·cuda
兰令水4 小时前
leecodecode【树形DP】【2026.6.11打卡-java版本】
java·算法·深度优先
装不满的克莱因瓶4 小时前
RLHF中的PPO算法——大语言模型对齐优化的核心引擎
人工智能·python·深度学习·算法·机器学习·语言模型·自然语言处理
SWAGGY..5 小时前
Linux系统编程:(十三)环境变量
java·linux·算法
Black蜡笔小新5 小时前
自动化AI算法训练服务器DLTM一体化训推平台构建企业专属AI能力中台
人工智能·算法·自动化
sjsjs115 小时前
力扣3558. 给边赋权值的方案数 I
算法·leetcode·职场和发展