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

力扣热门100题刷题笔记 - 3.无重复字符的最长子串

力扣热门100题 - 3.无重复字符的最长子串

题目链接:3. 无重复字符的最长子串

题目描述:

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

示例:

输入: s = "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
输入: s = "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

提示:

0 <= s.length <= 5 * 104
s 由英文字母、数字、符号和空格组成

解题思路 (滑动窗口 哈希表):

使用两个指针 l 和 r 表示当前不含重复字符子串的左右边界,初始时都指向字符串的开头。
使用 HashSet 存储当前子串中的字符,以便快速检查字符是否重复出现。
不断移动右指针 r,并将对应字符加入 HashSet。如果发现重复字符,说明当前子串中有重复字符,需要移动左指针 l,并将对应字符从 HashSet 中移除,直到子串中再次不含重复字符为止。
在每一次长度增加时更新最大子串长度 maxLen,即 maxLen = maxLen > (r-l) ? maxLen : (r - l);。
时间复杂度:O(n) 在每一步操作中,l 和 r 指针都会向前移动,而 HashSet 的操作是常数时间的,因此整体复杂度为 O(n)。

代码:

class Solution {public int lengthOfLongestSubstring(String s) {HashSet<Character> hs = new HashSet<>();int len = s.length();int maxLen = 0;int l = 0;int r = 0;while(r < len){char c = s.charAt(r);if (hs.contains(c)){hs.remove(s.charAt(l));l++;}else {hs.add(c);r++;maxLen = maxLen > (r-l) ? maxLen : (r - l);}}return maxLen;}
}

在这里插入图片描述

相关文章:

力扣热门100题刷题笔记 - 3.无重复字符的最长子串

力扣热门100题 - 3.无重复字符的最长子串 题目链接&#xff1a;3. 无重复字符的最长子串 题目描述&#xff1a; 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。示例&#xff1a; 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字…...

达梦数据库死锁排查与解决

在达梦数据库系统中&#xff0c;死锁是指两个或多个事务相互等待对方释放资源&#xff0c;从而造成循环等待的现象&#xff0c;严重影响数据库的正常运行。以下是使用达梦数据库进行死锁排查和解决的具体步骤&#xff1a; 死锁查看 查询当前死锁信息 SELECT lc.lmode, lc.ta…...

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之TextClock组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之TextClock组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、TextClock组件 TextClock组件通过文本将当前系统时间显示在设备上。支持不同…...

CICD注册和使用gitlab-runner常见问题

1、现象 fatal: unable to access https://github.com/homebrew/brew/: 2、解决 git config --global --unset http.proxy git config --global --unset https.proxy 查看gitlab-runner是否成功&#xff1a; userusers-MacBook-Pro ~ % gitlab-runner -h 查看gitlab-run…...

关于Django部署

首先了解一下开发环境服务器跟生产环境服务器有何不同。 一、我们通过 python manage.py runserver 启动开发环境服务器&#xff0c;这条命令背后做了哪些事情&#xff1f; 1、首先加载Django项目的设置&#xff08;settings&#xff09; 2、检查数据库迁移&#xff0c;确保数…...

计算机网络——01什么是InterNet

什么是InterNet 1.1 什么是网络 由节点和边组成的与形状大小无关的拓扑 1.2 什么是Internet 从具体构成角度来说&#xff1a; 节点&#xff1a; 主机及其上运行的应用程序路由器、交换机等网络交换设备 边&#xff1a;通信链路 接入网链路&#xff1a;主机连接到互联网的链…...

刷存在感,Excel转Protobuf/Json通用配置文件

使用场景 最近工作流中有将Excel转Protobuf作为配置文件的技术方案。具体实现是先定一个proto文件&#xff0c;再在一个对应excel表中定义对应字段&#xff0c;由策划在excel进行更改。proto文件可以生成对应语言的脚本&#xff0c;然后将excel转成对应protobuf的binary。 我…...

docker 开放tcp连接供idea等其他外部工具开放使用

docker 开放tcp连接供idea等其他外部工具开放使用 方法一&#xff1a;通过systemd工具 sudo systemctl edit docker.service 修改文件内容如下 ExecStart/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 重启 systemctl 配置 sudo systemctl daemon-reload 重启docker服务 s…...

虚拟机(VMware)ubuntu16.04 直接连接网口设备 USRP 吊舱

编辑虚拟网络编辑器 点击之后 选择网卡之后&#xff0c;点击确定。 电脑配置 使用了&#xff1a;192.168.2.56 虚拟机内部配置 和PC的配置一致...

告别繁杂的状态管理:Zustand 的简洁之道

1. Zustand Zustand 是一个轻量级的状态管理库&#xff0c;用于 JavaScript 应用程序&#xff0c;特别是在 React 生态系统中。它提供了一个简单、可扩展的解决方案来中心化和管理应用程序的状态。 与其他状态管理解决方案&#xff08;如 Redux 或 MobX&#xff09;相比&…...

CentOS磁盘扩容

参考操作 检查磁盘扩容情况 lsblk 使用fdisk命令进行开垦&#xff0c;有时需要重启之后才能进行下一步 fdisk /dev/新盘mkfs.ext4 /dev/新盘使用pvcreate直接创建虚拟卷 pvcreate /dev/新盘使用vgextend添加新创建的虚拟卷 vgextend 卷名称 /dev/新盘使用lvextend进行扩容…...

【数据分享】1929-2023年全球站点的逐日降雪深度数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 之前我们分享过1929-2023年全球气象站点的逐日平均气温数据、逐日最高气温数据…...

golang网络编程day4

golang网络编程day4 get和post的区别resful编程golang请求头golangheader内容类型和字符编码http请求头缓存和过期应用golang 请求头跨域请求应用http请求头用户代理应用golang响应头 get和post的区别 在前面的学习我只在应用场景上做了一个区别的举例,这里是进一步的学习有哪…...

为什么pgsql(内关联查询或者with字句时)会导致索引失效

1、在PostgreSQL中&#xff0c;内关联查询可能导致索引失效的原因通常与查询的过滤条件和数据分布有关。 以下是一些可能导致索引失效的情况&#xff1a; 1、使用了函数或类型转换&#xff1a;当查询条件中对索引字段使用了任何计算、函数或类型转换时&#xff0c;这可能会阻止…...

小程序 自定义组件和生命周期

文章目录 ⾃定义组件创建⾃定义组件声明组件编辑组件注册组件 声明引⼊⾃定义组件⻚⾯中使⽤⾃定义组件定义段与⽰例⽅法组件-⾃定义组件传参过程 小程序生命周期应用生命周期页面生命周期页面生命周期 ⾃定义组件 类似vue或者react中的自定义组件 ⼩程序允许我们使⽤⾃定义组件…...

asp.net 404页面配置、 asp.net MVC 配置404页面、iis 配置404页面,指定404错误页面,设置404错误页面

通过标题的三个问题 1、asp.net 404页面配置、 2、asp.net MVC 配置404页面、 3、iis 配置404页面&#xff1b; 可以看出&#xff0c;这是一篇了不得的问题&#xff0c;并进行全面讲解&#xff1b; 除了围绕以上三个核心问题外&#xff0c;我们也对以下2个核心场景也作出分析…...

Docker存储空间清理

不知不觉服务器存储空间被Docker掏空了… 查看Docker空间占用情况 使用docker system df命令&#xff0c;可以加 -v 查看详情 清理Docker不需要的内容 使用docker system prune -a命令清理Docker 所有停止的容器所有没有被使用的networks所有没容器的镜像所有build cache …...

React16源码: React中NewContext的源码实现

NewContext 1 &#xff09;概述 新的 context API 是一个组件化的使用方式 它就跟写其他的组件一样&#xff0c;像写jsx&#xff0c;通过标签的这种方式来赋值一些props还有去给子节点去拿到这个 conntext 的属性 context的提供方和订阅方都是独立的 在什么地方想要用到这个 c…...

【Linux】【Shell】常用压缩和解压缩命令(超详细)

目录 1. 指令&#xff1a; 1.1 tar 1.2 gz、.tar.gz 1.3 .bz2、.tar.bz2、.bz 1.4 .z、.tar.z 1.5 .zip 1.6 .rar 1.7 lzop 2. 示例&#xff1a; 1. 指令&#xff1a; 快速压缩&#xff1a;XZ_DEFAULTS"-T0" tar cJvf xxxxx.tar.xz sourcefile&#xff08;压…...

【Java程序设计】【C00232】基于Springboot的抗疫物资管理系统(有论文)

基于Springboot的抗疫物资管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的抗疫物资管理系统 用户主要分为管理员和普通用户 管理员&#xff1a; 管理员可以对后台数据进行管理、拥有最高权限、具体权限有…...

职业院校智慧校园系统采购,为什么要把校企合作项目放在前面?

✅作者简介&#xff1a;合肥自友科技 &#x1f4cc;核心产品&#xff1a;智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…...

OpenClaw健康助手:千问3.5-9B提醒与健康数据分析

OpenClaw健康助手&#xff1a;千问3.5-9B提醒与健康数据分析 1. 为什么需要本地化健康助手&#xff1f; 去年体检报告上的几项异常指标让我意识到&#xff0c;健康管理不能只依赖每年一次的检查。市面上的健康类App要么过度收集数据&#xff0c;要么功能过于单一。作为一个技…...

避坑指南:用SwinUnet跑通Synapse医学图像分割,我踩过的那些环境与数据坑

SwinUnet医学图像分割实战避坑指南&#xff1a;从环境配置到模型测试的完整解决方案 第一次接触SwinUnet进行医学图像分割时&#xff0c;我像大多数初学者一样&#xff0c;满怀信心地克隆了GitHub仓库&#xff0c;准备大展身手。然而现实很快给了我一记重击——从Python版本冲突…...

OpenClaw自动化测试:Phi-3-vision-128k-instruct版本升级对比

OpenClaw自动化测试&#xff1a;Phi-3-vision-128k-instruct版本升级对比 1. 测试背景与动机 上周在星图镜像广场发现Phi-3-vision-128k-instruct的新版本镜像更新&#xff0c;作为长期使用OpenClaw进行自动化测试的技术爱好者&#xff0c;我决定系统性地验证这个号称"支…...

3种方案玩转赛博朋克2077存档修改:从入门到精通的技术指南

3种方案玩转赛博朋克2077存档修改&#xff1a;从入门到精通的技术指南 【免费下载链接】CyberpunkSaveEditor A tool to edit Cyberpunk 2077 sav.dat files 项目地址: https://gitcode.com/gh_mirrors/cy/CyberpunkSaveEditor 赛博朋克2077存档编辑器是一款专业级游戏数…...

全贴合工艺中Cover Lens Mura不良的关键影响因素与优化策略

1. 全贴合工艺中的Mura现象解析 第一次看到全贴合屏幕上出现发黄或发白的斑块时&#xff0c;我还以为是产品运输途中受了撞击。后来在产线蹲守三个月才发现&#xff0c;这些被称为"Mura"的光学缺陷&#xff0c;其实是贴合工艺中的隐形杀手。Mura这个词源自日语"…...

抖音无水印视频批量下载器深度解析:从架构设计到实战应用

抖音无水印视频批量下载器深度解析&#xff1a;从架构设计到实战应用 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…...

云原生环境中的DevOps实践

云原生环境中的DevOps实践 &#x1f525; 硬核开场 各位技术老铁&#xff0c;今天咱们聊聊云原生环境中的DevOps实践。别跟我扯那些理论&#xff0c;直接上干货&#xff01;在云原生时代&#xff0c;DevOps已经不是可选选项&#xff0c;而是必须掌握的生存技能。不搞DevOps&…...

魔兽争霸3 Windows 11兼容性终极解决方案:让你的经典游戏重获新生

魔兽争霸3 Windows 11兼容性终极解决方案&#xff1a;让你的经典游戏重获新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在Windo…...

OpenCore Legacy Patcher技术解析:老旧Mac设备的macOS现代化方案

OpenCore Legacy Patcher技术解析&#xff1a;老旧Mac设备的macOS现代化方案 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 一、工具概述与价值定位 OpenCo…...