leetcode中如何查看无重复字符的最长子串
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了leetcode中如何查看无重复字符的最长子串,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。题目链接https://
千家信息网最后更新 2026年11月02日leetcode中如何查看无重复字符的最长子串
这篇文章主要介绍了leetcode中如何查看无重复字符的最长子串,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
题目链接
https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/
题目描述
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:
输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:
输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
解题方案
思路
标签:滑动窗口
暴力解法时间复杂度较高,会达到O(n^2),故而采取滑动窗口的方法降低时间复杂度
定义一个map数据结构存储(k,v),其中key值为字符,value值为字符位置+1,加1表示从字符位置后一个才开始不重复
我们定义不重复子串的开始位置为start,结束位置为end
随着end不断遍历向后,会遇到与[start, end]区间内字符相同的情况,此时将字符作为key值,获取其value值,并更新start,此时[start, end]区间内不存在重复字符
无论是否更新start,都会更新其map数据结构和结果ans。
时间复杂度:O(n)
代码
class Solution { public int lengthOfLongestSubstring(String s) { int n = s.length(), ans = 0; Map map = new HashMap<>(); for (int end = 0, start = 0; end < n; end++) { char alpha = s.charAt(end); if (map.containsKey(alpha)) { start = Math.max(map.get(alpha), start); } ans = Math.max(ans, end - start + 1); map.put(s.charAt(end), end + 1); } return ans; }} 画解

感谢你能够认真阅读完这篇文章,希望小编分享的"leetcode中如何查看无重复字符的最长子串"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
字符
最长
长度
位置
篇文章
复杂
复杂度
时间
示例
更新
解释
输入
输出
区间
数据
数据结构
结构
题目
相同
不断
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云之行互联网科技
西安纸贵互联网科技有限公司
科技和互联网公司
关于新基建和互联网科技
麻工互联网科技
互联网科技公司电话
万易互联网科技有限公司
互联网高科技股票
互联网科技生活的内容
须眉科技是互联网公司吗
互联网校园科技培训
港股科技和互联网
互联网科技和法律行业
特约风豹互联网科技为什么扣费
互联网科技实习生岗位
易企秀互联网科技是做什么的
珠海东科互联网科技有限公司
版纳互联网科技选哪家
互联网的科技体现在哪里
科技互联网专业工作会议发言稿
中国互联网科技股
互联网 科技创新
广州优美互联网科技
彤创互联网科技有限公司
乌鲁木齐新华智原互联网科技学校
深圳无忧互联网科技
九思连强互联网电子科技有限公司
恒生互联网科技趋势
互联网科技企业文化
互联网科技快速发展优美句子