【LeetCode 滑动窗口】LC_3_无重复字符的最长子串

文章目录

      • 1. 无重复字符的最长子串

1. 无重复字符的最长子串

题目链接🔗
在这里插入图片描述


  • 🍎题目思路:
  • 🐧① 滑动窗口的思想;
  • 🐧② 用什么来维护窗口呢 ? 用 双指针 和 unordered_set来维护,为什么呢? 因为unordered_set不允许存储重复字符,利用这点特性,我们只需要在加入新的字符之前,先判断unordered_set 里面有没有该元素,没有的话,我们再加入

  • 🍎题目代码:
class Solution {
public:int lengthOfLongestSubstring(string s) {int ans = 0, left = 0;unordered_set<int> window;int n = s.size();for (int right = 0; right < n; right ++){char ch = s[right];// 1.要先判断窗口是否有该元素,如果有的话,应该把该元素先出窗口while (window.count(ch) > 0){window.erase(s[left]);left ++;    // 缩小窗口}// 2. 判断窗口没有 ch 元素之后才能加入window.insert(ch);ans = max(ans, right - left + 1);}return ans;}
};

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/24179.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

标题:深入探索Linux中的`ausyscall`

标题&#xff1a;深入探索Linux中的ausyscall&#xff08;注意&#xff1a;ausyscall并非Linux内核标准命令&#xff0c;但我们可以探讨类似的概念&#xff09; 在Linux系统中&#xff0c;系统调用&#xff08;syscall&#xff09;是用户空间程序与内核空间进行交互的一种重要…

Git介绍及应用

1.简介 Git是一个分布式版本控制器&#xff0c;通常用来对软件开发过程中的源代码文件进行管理。通过Git仓库来存储和管理这些文件&#xff0c;Git仓库分为两种&#xff1a; 本地仓库:开发人员自己电脑上的Git仓库远程仓库:远程服务器上的Git仓库 2.执行流程 3.Git代码托管服务…

【TB作品】MSP430F5529 单片机,温度控制系统,DS18B20,使用MSP430实现的智能温度控制系统

作品功能 这个智能温度控制系统基于MSP430单片机设计&#xff0c;能够实时监测环境温度并根据预设的温度报警值自动调节风扇和加热片的工作状态。主要功能包括&#xff1a; 实时显示当前温度。通过OLED屏幕显示温度报警值。通过按键设置温度报警值。实际温度超过报警值时&…

【经验分享】嵌入式入坑经历(选段)

文章目录 你现在的工作中所用到的专业知识有哪些呢&#xff1f;为什么想转行了&#xff1f;后来为什么从事了嵌入式行业呢?你对嵌入式的兴趣是何时培养起来的?你是怎么平衡兴趣爱好和工作的关系的?平时做的事情对你现在的工作有哪些帮助?对于有志学习嵌入式开发的在校大学生…

【96】write combine机制介绍

前言 这篇文章主要介绍了write combine的机制 一、write combine的试验 1.系统配置 &#xff08;1&#xff09;、CPU&#xff1a;11th Gen Intel(R) Core(TM) i7-11700 2.50GHz &#xff08;2&#xff09;、GPU&#xff1a;XX &#xff08;3&#xff09;、link status&am…

MySQL(四) - SQL优化

一、SQL执行流程 MySQL是客户端-服务器的模式。一条SQL的执行流程如下&#xff1a; 在执行过程中&#xff0c;主要有三类角色&#xff1a;客户端、服务器、存储引擎。 大致可以分为三层&#xff1a; 第一层&#xff1a;客户端连接到服务器&#xff0c;构造SQL并发送给服务器…

Python | 排队取奶茶

队列的基本概念&#xff08;队头、队尾&#xff09;和特点&#xff08;先入先出&#xff09; 在 Python 语言中&#xff0c;标准库中的queue模块提供了多种队列的实现&#xff0c;比如普通队列和优先级队列&#xff0c;因此你可以使用queue.Queue类来创建队列&#xff0c;不过…

惠海 H5528 升降压芯片 12V24V36V48V60V75V LED恒流驱动IC 调光细腻顺滑无阶梯感

惠海H5528是一款升压、降压、升压降压的LED恒流驱动IC&#xff0c;其具备宽范围调光比且无频闪调光的特性&#xff0c;使得它在智能照明、Dali调光、0~10V调光、摄影灯照明以及补光灯照明等多种应用中具有广泛的应用前景。 这款芯片支持降压、升压和升降压拓扑的应用&#xff0…

C++面向对象程序设计 - 文件操作与文件流

在实际应用中&#xff0c;常以磁盘文件作为对象&#xff0c;即能从磁盘文件读取数据&#xff0c;也能将数据输出到磁盘文件&#xff0c;磁盘是计算机的外部存储器&#xff0c;能够长期保留信息&#xff0c;能读能写&#xff0c;可以刷新重写等等。 在C中&#xff0c;文件操作通…

Flink Rest Basic Auth - 安全认证

背景 公司目前需要将Flink实时作业云化,构建多租户实时计算平台。目前考虑为了资源高效利用,并不打算为每个租户部署一套独立的Kubernetes集群。也就意味着多个租户的作业可能会运行在同一套kubernets集群中。此时实时作业的任务就变的很危险,因为网络可能是通的,就会存在…

106.网络游戏逆向分析与漏洞攻防-装备系统数据分析-在UI中显示装备与技能信息

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果&#xff0c;代码看不懂是正常的&#xff0c;只要会抄就行&#xff0c;抄着抄着就能懂了 内容…

新媒体暴力起号必备因素!沈阳新媒体运营培训学校

1周涨粉10w&#xff1f;这对普通人来说可以说是天文数字&#xff0c;但只要掌握方式方法&#xff0c;普通人也能做到&#xff01; 面试经验丰富的人都深知&#xff0c;给面试官留下的第一印象相当重要&#xff0c;几乎决定了80%的面试机会。标题也是如此&#xff0c;在完成一篇…

Android SBL是什么

Android SBL&#xff08;Secondary Bootloader&#xff09;是Android系统中一个关键的组成部分&#xff0c;它属于Bootloader的二级引导程序。以下是关于Android SBL的详细解释&#xff1a; 定义&#xff1a; SBL是Secondary Bootloader的缩写&#xff0c;中文称为第二级引导程…

中国剩余定理学习

中国剩余定理( C R T CRT CRT)及其扩展( E X C R T EXCRT EXCRT)详解 基本形式 中国剩余定理给出了以下的一元线性同余方程组的解&#xff1a; { x ≡ a 1 ( m o d m 1 ) x ≡ a 2 ( m o d m 2 ) ⋮ x ≡ a n ( m o d m n ) \begin{cases} x \equiv a_1 \pmod{m_1} \\ x \eq…

力扣209.长度最小的数组

力扣209.长度最小的数组 模版滑窗求最小 class Solution {public:int minSubArrayLen(int target, vector<int>& nums) {int n nums.size(),resn1;int sum 0;for(int i0,j0;i<n;i){sum nums[i];//尽可能缩小区间while(sum - nums[j] > target){sum - num…

[经验] 蝉联一词的含义是什么 #知识分享#职场发展

蝉联一词的含义是什么 蝉联这个词起源于古代中国&#xff0c;最初是指天子连续两年以上的年号相同。后来&#xff0c;这个词被用于形容某个人或某个团体连续多次获得某种荣誉或奖项的情况。在现代生活中&#xff0c;我们常常听到某个体育运动员蝉联冠军、某个企业蝉联业绩排行榜…

荆州餐饮环保在行动:清洗油烟净化器,守护城市环境

我最近分析了餐饮市场的油烟净化器等产品报告&#xff0c;解决了餐饮业厨房油腻的难题&#xff0c;更加方便了在餐饮业和商业场所有需求的小伙伴们。 在荆州&#xff0c;餐饮业不仅是美食爱好者的天堂&#xff0c;更是城市生活的重要组成部分。然而&#xff0c;随着餐饮业的发…

基于拓扑漏洞分析的网络安全态势感知模型

漏洞态势分析是指通过获取网络系统中的漏洞信息、拓扑信息、攻击信息等&#xff0c;分析网络资产可能遭受的安全威胁以及预测攻击者利用漏洞可能发动的攻击&#xff0c;构建拓扑漏洞图&#xff0c;展示网络中可能存在的薄弱环节&#xff0c;以此来评估网络安全状态。 在网络安…

科普|大数据风险检测对申贷人有哪些好处?

大数据风险检测可以极大地提高金融机构在用户肖像、反欺诈和信用评级等方面的效率和风险控制能力&#xff0c;这是金融企业发展过程中必须结合的一种科技技术。大数据风险检测覆盖信贷领域的所有流程&#xff0c;从客户获取到身份验证&#xff0c;再到信贷中和信贷后。因此&…

Ruby语言与Python:深度比较与独特魅力探索

Ruby语言与Python&#xff1a;深度比较与独特魅力探索 在编程语言的浩瀚海洋中&#xff0c;Ruby和Python无疑是两颗璀璨的明星。它们各自拥有独特的魅力和广泛的应用领域。本文将从四个方面、五个方面、六个方面和七个方面&#xff0c;深入探讨Ruby语言和Python的异同&#xf…