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

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

目录

题目

题目链接:LeetCode-3题

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

算法解法

解法一 暴力枚举 + 哈希表(判断字符是否重复出现) (O( n 2 n^{2} n2))

枚举每一个位置能到达的终点。
简单解法,不讲解。

解法二 滑动窗口 + 哈希表(判断字符是否重复出现)

  1. 滑动窗口的左窗口left = 0,右边窗口right = 0
  2. 进窗口 让字符进入哈希表
  3. 判断是否出现重复字符,如果有,出窗口,从哈希表中删除该字符
  4. 更新结果

代码

class Solution {
public:
    unordered_map<char,int> hash;
    int lengthOfLongestSubstring(string s) {
            int ret = 0; //存结果

            //滑动窗口
            int left = 0;
            int right = 0;

            for(right;right<s.size();right++)
            {
                //进窗口
                hash[s[right]]++;

                //出窗口
                while(hash[s[right]]>1) 
                {
                    hash[s[left]]--;
                    left++;
                }
                //更新结果
                ret = max(ret,right-left+1);
            }
            return ret;
    }
};
http://www.dtcms.com/a/20688.html

相关文章:

  • Qt中基于开源库QRencode生成二维码(附工程源码链接)
  • Mac 开发工具推荐
  • 《云原生安全攻防》-- K8s镜像安全:镜像全生命周期安全管理
  • 深入解析类方法与静态方法 —— 内存分析与直观图示详解
  • 项目访问出现504 Gateway Time-out nginx/1.21.6的情况
  • 注册表单提交加验证码功能
  • 服务器租用:虚拟化技术都包含哪些内容?
  • 2025年2月9日(数据分析_2)
  • Spring AI发布!让Java紧跟AI赛道!
  • ailx10的发明专利思路
  • HDFS体系结构
  • 【深度学习】深度学习和强化学习算法——深度 Q 网络DQN
  • 【SQL SERVER】sqlserver 该表字段如果被用作其他表的外键不能被truncate table
  • 掌握xtquant实时行情订阅:量化交易的关键一步
  • 强化学习笔记7——DDPG到TD3
  • 速度与激情:4.5吨轻卡阻力与刹车力模型的终极拆解——从仿真台架到真实路况的硬核对话
  • 2025年2月16日(numpy-deepseek)
  • 【云原生】SpringCloud-Spring Boot Starter使用测试
  • Spring源码分析のBean创建流程(上)
  • OpenCV简介
  • 用命令模式设计一个JSBridge用于JavaScript与Android交互通信
  • Python —— format函数的使用
  • Copilot in OneNote(WebTeams)功能提升效率加倍
  • open3d绘制平面
  • kamailio的伪变量
  • 2.2 反向传播:神经网络如何“学习“?
  • 从Vec3实现复习运算符重载
  • Deepseek R1模型本地化部署与API实战指南:释放企业级AI生产力
  • 如何在 Vue 3 中使用 Vue Router 和 Vuex
  • 联想小新 510S-14IKB (80UX) 原厂Win10系统oem镜像下载