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

LeetCode-Hot100-008无重复最长子串

思路

其实就是考虑每一个字母为右端点的时候的最长子串,只不过可以使用双指针或者说滑动窗口节省到 O ( n ) O(n) O(n)的复杂度。

不懂的可以在评论区问我

代码

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        int ans = 0;
        int left = 0; int right = 0;
        int len_s = s.size();
        unordered_set<char> vis;
        for(; right<len_s; right++)  //每次计算以right为右端点的最长子串
        {
            while(vis.count(s[right])==1)
            {
                vis.erase(s[left]); left++;
            }
            vis.insert(s[right]);
            ans = max(right-left+1, ans);
        }
        return ans;
    }
};
http://www.dtcms.com/a/49850.html

相关文章:

  • 111. 二叉树的最小深度
  • ESP32之Flash操作
  • 数字人分身/123数字人/数字人直播
  • [51 单片机] --串口编程
  • 【华为OD机考】华为OD笔试真题解析(17)--打印文件
  • 2025-03-04 学习记录--C/C++-PTA 习题5-4 使用函数求素数和
  • 手动调整3DTiles倾斜模型的高度、位置、亮度
  • MWC 2025 | 紫光展锐联合移远通信推出全面支持R16特性的5G模组RG620UA-EU
  • HTML label 标签使用
  • 基于微信小程序的心理健康恢复系统+LW示例参考
  • 用DeepSeeker写小说构思 《故事大纲、主线、剧情风格》
  • 无人机遥控器无线传输技术解析!
  • 如何在随机振动分析中包括缓冲器
  • 【MySQL】与MongoDB的区别,字符集,三范式,存储引擎InnoDB、MyISAM
  • 【C++设计模式】第三篇:抽象工厂模式(Abstract Factory)
  • MySQL JOIN 与子查询深度对比:原理、性能陷阱与优化策略
  • 【C++学习篇】智能指针
  • 七、Redis 内存管理详解:模型、优化策略(LRU/LFU、对象共享)
  • 从零开始学 Node.js:完整安装与实战指南
  • vulnhub靶场之【digitalworld.local系列】的JOY靶机
  • 深入解析英文单词“Dime”——从硬币到篮球助攻
  • 滑动窗口法——实践中的BA
  • win10 HV主机服务无法启动(wsl安装失败)
  • 缺陷VS质量:为何软件缺陷是质量属性的致命对立面?
  • Python 图像处理之 Pillow 库:玩转图片
  • Graph RAG 迎来记忆革命:“海马体”机制让问答更精准!
  • 【 <一> 炼丹初探:JavaWeb 的起源与基础】之 JSP 基础语法:从脚本片段到 EL 表达式
  • 社会力模型:Social force model for pedestrian dynamics
  • 苹果手机备忘录怎么导入安卓手机?
  • 【C#】Clipboard中SetImage(BitmapSource image)的用法