当前位置: 首页 > news >正文

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

题目:

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

类型:滑动窗口

题解:

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

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

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

本题题解:

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)

http://www.dtcms.com/a/348379.html

相关文章:

  • 从“小麻烦”到“大难题”:Spring Boot 配置文件的坑与解
  • UE5游戏开发的理想硬件配置指南:从入门到专业级方案
  • MySQL视图有什么用?一文读懂虚拟表的六大核心价值
  • 数据治理进阶——埃森哲 数据治理元数据管理建设规划方案【附全文阅读】
  • LabVIEW Vision视觉引导撑簧圈智能插装
  • java-代码随想录第十五天| 12.平衡二叉树、222.完全二叉树的节点个数、404.左叶子之和
  • 网络安全转型书籍清单
  • JavaScript 性能优化实战:全方位提升 Web 应用性能
  • 【LeetCode 热题 100】152. 乘积最大子数组——(解法一)递推
  • Vue2+Vue3前端开发笔记合集
  • 九、redis 入门 之 数据库和缓存一致性问题
  • Vue2+Vue3前端开发_Day12-Day14_大事件管理系统
  • Python无穷大与NaN处理完全指南:从基础到工程级解决方案
  • 【Java】springboot的自动配置
  • Wagtail CRX 简介
  • Python使用-Python环境安装
  • 【分布式中间件】Kafka 核心配置深度解析与优化指南
  • 【存在重复元素II】
  • 57 C++ 现代C++编程艺术6-类的内部类
  • MSF基础知识
  • Flask蓝图:模块化开发的利器
  • 数学建模--模糊综合评价法
  • 优化OpenHarmony中lspci命令实现直接获取设备具体型号
  • 7.6 残差网络
  • Palantir Foundry 领先其他数据平台5到10年:一位使用者的深入观察
  • vscode配置remote-ssh进行容器内开发
  • BQTLOCK 勒索软件即服务出现,拥有复杂的规避策略
  • MRO and mixin in Python Django
  • GD32VW553-IOT 测评和vscode开发环境搭建
  • Flutter性能优化完全指南:构建流畅应用的实用策略