当前位置:网站首页>LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之二:编码实现
LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之二:编码实现
2022-08-03 08:15:00 【51CTO】
欢迎访问我的GitHub
这里分类和汇总了欣宸的全部原创(含配套源码): https://github.com/zq2599/blog_demos
- 本文是《LeetCode第三题(Longest Substring Without Repeating Characters)三部曲》的第二篇, 前一篇文章已经列出了完整的解题思路,今天来将此思路转化为具体的Java代码;
关键变量
- 编码之前先确定几个关键变量:
- 当前窗口中的元素都是不重复的,适合用一个HashSet来保存;
- max变量记录最长子串的长度;
- left表示窗口左侧相对整个字符串的位置,right表示窗口右侧相对整个字符串的位置,如下图:

代码实现
- 以下是代码,关键位置都有详细注释:
上述代码的关键是set.remove(s.charAt(left++)),配合着外面的while循环,"left++"表示将窗口向右移动一个元素,并且将窗口中最左侧的元素从set中删除;
上述代码在LeetCode上提交成功,不过运行时间超过40ms,成绩并不理想,接下来的文章我们一起来做优化提升速度;
欢迎关注51CTO博客:程序员欣宸
边栏推荐
猜你喜欢

熊市中预言机,牛市中的战斗机,藏宝计划起飞,坐稳扶好!

“==”和equals的区别

Dapr 与 NestJs ,实战编写一个 Pub & Sub 装饰器

rust 学习笔记

vs 2022无法安装 vc_runtimeMinmum_x86错误

Eject stubborn hard drives with diskpart's offline command

How does Mysql query two data tables for the same fields in two tables at the same time

Arduino框架下对ESP32 NVS非易失性存储解读以及应用示例

【论文笔记】基于动作空间划分的MAXQ自动分层方法

mysql5.7服务器The innodb_system data file 'ibdata1' must be writable导致无法启动服务器
随机推荐
用diskpart的offline命令弹出顽固硬盘
牛客 - 最佳直播时间 (差分)
001-进程与线程
【论文笔记】一种基于启发式奖赏函数的分层强化学习方法
Guava-字符串工具
【收获合辑】k-NN与检索任务的异同+jupyter转pdf
Using pipreqs export requirements needed for the project. TXT (rather than the whole environment)
Neo4j 4.X:导入OWL文件
FusionAccess软件架构、FusionAccess必须配置的四个组件、桌面发放流程、虚拟机组类型、桌面组类型
HCIP练习03(重发布)
推荐系统-排序层-模型:Wide&Deep
集群
sqlite date field plus one day
AI中台序列标注任务:三个数据集构造过程记录
ArcEngine(四)MapControl_OnMouseDown的使用
timestamp
Logic Pro X自带音色库列表
uniapp swiper 卡片轮播 修改指示点样式效果demo(整理)
WPF 学习笔记《WPF样式基础》
mysql5.7服务器The innodb_system data file 'ibdata1' must be writable导致无法启动服务器