首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【(含模板)滑动窗口 - LeetCode】3. 无重复字符的最长子串

【(含模板)滑动窗口 - LeetCode】3. 无重复字符的最长子串

作者头像
Lokinli
发布2025-08-25 08:16:33
发布2025-08-25 08:16:33
1550
举报
文章被收录于专栏:以终为始以终为始

题目:

3. 无重复字符的最长子串 - 力扣(LeetCode)

类型:滑动窗口

题解:

利用滑动窗口,窗口内(开一个集合或者其他存储结构)符合条件时,窗口右边 向右移动(扩大窗口),不符合条件时,窗口左边向右移动(缩小窗口)。

在官方题解看到了一个写的非常棒的滑动窗口模版!

代码语言:javascript
复制
//外层循环扩展右边界,内层循环扩展左边界
for (int l = 0, r = 0 ; r < n ; r++) {
	//当前考虑的元素
    
    
//区间[left,right]不符合题意
	while (l <= r && check()) {
        //扩展左边界
    }
    //区间[left,right]符合题意,统计相关信息
}

本题题解:

代码语言:javascript
复制
class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        unordered_set<char>st;
        int n = s.size();
        int ans = 0;
        for(int l = 0, r = 0; r < n; r ++){
            char ch = s[r];
            while(st.count(ch)){
                st.erase(s[l]);
                l ++;
            }
            st.insert(s[r]);
            int tmp_ans = st.size();
            ans = max(tmp_ans, ans);
        }
        return ans;
    }
};

官方题解:

3. 无重复字符的最长子串 - 力扣(LeetCode)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档