leetcode--3. 无重复字符的最长子串[滑动窗口\哈希表 c++]

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

题目解析:

最长子串可以用滑动窗口解决,无重复字符可以使用哈希表解决。

算法原理:

滑动窗口+哈希表

哈希表作为一个数组存放每个字符出现的次数。

滑动窗口四步走

1.进窗口

2.判断

3.出窗口

4.更新状态

进窗口 --- 利用哈希表记录进入窗口的字符,即right指向的字符。因为字母有对应的ascii码值,可以转化为int类型,所以直接将字符作为哈希表的下标。

判断 --- 在滑动窗口的判断阶段,若哈希表中存放的数字大于1,则说明当前right指向的字符重复

出窗口---直到left指针跳过了和right指针相同的字符

更新状态---此时right指针指向的字符的哈希表数据更新为1,表明不再重复,继续遍历。

因为left和right都一直向前遍历,所以是同向双指针,即滑动窗口

代码

class Solution {
public:int lengthOfLongestSubstring(string s) {int hash[128]={0};int n = s.size(), left = 0,right = 0,ret = 0;while(right <n){//进窗口hash[s[right]]++;//判断while(hash[s[right]] > 1){//出窗口hash[s[left++]]--;}//更新ret = max(ret,right-left+1);right++;}
return ret;}
};

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

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

相关文章

ACM程序设计课内实验(5)递归

前言 定义&#xff1a;自己调用自己&#xff08;需要调用栈来执行&#xff09; 两个基本要素&#xff1a;边界条件&#xff08;何时结束&#xff09;和 递归模式&#xff08;大问题如何转化为小问题&#xff09; 关键&#xff1a;根据递推关系式写程序&#xff08;用数学归纳法…

java-集合

什么是算法和数据结构 【1】算法&#xff1a; &#xff08;1&#xff09;可以解决具体问题 :例如 1234。。。99100 解题流程算法 &#xff08;2&#xff09;有设计解决的具体的流程 算法1&#xff1a; 123 336 6410.....加到100 --》5050 算法2&#xff1a;(1100)*5…

Python 自动化之批量处理文件(一)

批量新建目录、文档Pro版本 文章目录 批量新建目录、文档Pro版本前言一、做成什么样子二、基本思路1.引入库2.基本架构 三、用户输入模块四、数据处理模块1.excel表格数据获取2.批量数据的生成 总结 前言 我来写一个不一样的批量新建吧。在工作中&#xff0c;有些同学应该会遇…

MySQL全文索引

MySQL全文索引是MySQL中提供的一种基于全文索引的搜索功能&#xff0c;主要用于在InnoDB或MyISAM表中搜索信息。 创建全文索引 创建全文索引使用FULLTEXT关键字。你可以在创建表时添加全文索引&#xff0c;或者通过修改已有表结构添加全文索引。 在创建表时添加全文索引&…

css 使用flex 完成瀑布流布局

瀑布流布局在商城类、文章类 app、网页中都是常用的&#xff0c;使用这样的形式&#xff0c;能过让整个页面更加的活波&#xff0c;也能让图片根据实际的大小来显示&#xff0c;更好的展示图片内容。那么代码如何实现呢 实现的效果 代码 <template><view class"…

登录/验证码/注册

登录 pom文件 <!--hutool工具类--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.9</version></dependency><!--jwt--><dependency><groupId>io.jsonw…

【解决】Windows 11检测提示电脑不支持 TPM 2.0(注意从DTPM改为PTT)

win11升级&#xff0c;tpm不兼容 写在最前面1. 打开电脑健康状况检查2. 开启tpm3. 微星主板AMD平台开启TPM2.0解决电脑健康状况检查显示可以安装win11&#xff0c;但是系统更新里显示无法更新 写在最前面 我想在台式电脑上用win11的专注模式&#xff0c;但win10不支持 1. 打…

基于自动化脚本批量上传依赖到nexus内网私服

前言 因为某些原因某些企业希望私服是不能连接外网的&#xff0c;所以需要某些开源依赖需要我们手动导入到nexus中&#xff0c;尽管nexus为我们提供了web页面。但是一个个手动导入显然是一个庞大的工程。 对此我们就不妨基于脚本的方式实现这一过程。 预期效果 笔者本地仓库…

window.location.href的用法大全

window.location.href的用法大全 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;让我们一起探讨前端开发中常用的一个关键技术——window.location.href。这是一个在Web开发中频繁使用…

在Node.js中MongoDB插入数据的方法

本文主要介绍在Node.js中MongoDB插入数据的方法。 目录 Node.js中MongoDB插入数据使用MongoDB原生驱动插入数据使用Mongoose插入数据 Node.js中MongoDB插入数据 在Node.js中&#xff0c;可以使用MongoDB原生驱动或Mongoose库来连接和操作MongoDB数据库。 以下是在Node.js中使用…

爬取图片python代码

在百度上爬取图片 pic_baidu.py import re import requests from urllib import error from bs4 import BeautifulSoup import os num 0 numPicture 0 file List []def Find(url, A):global Listprint(正在检测图片总数&#xff0c;请稍等.....)t 0i 1s 0while t <…

电子印章法律风险点及安全防范措施

公章是公司处理内外部事务的印鉴&#xff0c;公司对外的正式信函、文件、报告使用公章&#xff0c;盖了公章的文件具有法律效力。公章由公司的法定代表人执掌&#xff0c;法定代表人如果把法定代表人章与公章一同使用就代表公司行为。 随着社会数字化转型&#xff0c;电子印章及…

持续集成交付CICD:CentOS 7 安装SaltStack

目录 一、理论 1.SaltStack 二、实验 1.主机一安装master 2.主机二安装第一台minion 3.主机三安装第二台minion 4.测试SaltStack 一、理论 1.SaltStack &#xff08;1&#xff09;概念 SaltStack是基于python开发的一套C/S自动化运维工具&#xff0c;通信采用了zerom…

【UML】组件图中的供需接口与面向对象中的接口

UML&#xff08;统一建模语言&#xff09;组件图中的“供接口”&#xff08;Provided Interface&#xff09;和“需接口”&#xff08;Required Interface&#xff09;与面向对象编程中的接口概念有关联&#xff0c;但它们在应用上有所区别。 下面解释两者的关系&#xff1a; …

2023下半年软考复盘反思

工作十几年了&#xff0c;一直想考一个高级职称、但是疫情三年也没心思考&#xff0c;不想出去折腾。疫情过去&#xff0c;今年下半年想考一个&#xff0c;由于工作忙&#xff0c;准备了30天&#xff0c;成绩已经出了&#xff0c;先说结果&#xff1a;未通过。现在对这个过程反…

ElementPlus中的分页逻辑与实现

ElementPlus中的分页逻辑与实现 分页是web开发中必不可少的组件&#xff0c;element团队提供了简洁美观的分页组件&#xff0c;配合table数据可以实现即插即用的分页效果。分页的实现可以分成两种&#xff0c;一是前端分页&#xff0c;二是后端分页。这两种分页分别适用于不同…

three.js(二)

three.js&#xff08;二&#xff09; 参考前言正文简单开始(不使用任何框架)补充 粗略带过(使用Vue框架)细致讲解(比如我使用react框架)App.jsx 的进阶版 项目打包补充打包遇到的问题:原因:解决办法: 参考 https://threejs.org/docs/ 前言 上一集中,我们用到了three.js的一个…

Redis-分片集群大纲

1. Redis集群方案比较 哨兵分片 2. Redis分片集群搭建 3. Java操作redis分片集群 jedislettuce 4. Redis集群原理分析 槽位定位算法 HASH_SLOT CRC16(key) mod 16384 跳转重定位 Redis集群节点间的通信机制 gossip && gossip通信的10000端口 Redis集群选举…

AUTOSAR_RS_LogAndTrace中文翻译(待更)

4功能概述 5.功能要求 5.2.1.1通用型 1.日志记录应支持初始化和注册 2. 日志功能应该使应用程序提供日志信息 3. 日志功能应能和追踪应用程序之间通信&#xff0c; 4. 日志应支持对日志信息进行分组&#xff0c;使用案例&#xff1a;关联过滤所有属于一起的日志信息 5. 日志记…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)十四:系统设置模块相关功能实现

一、本章内容 本章使用已实现的公共组件实现系统管理中的系统设置模块相关功能,包括菜单管理、角色管理、日志管理、用户管理、系统配置、数据字典等。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 三、开发视频 3.1 B站视频地址: