当前位置:网站首页>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博客:程序员欣宸
边栏推荐
- sqlite date field plus one day
- IDEA的database使用教程(使用mysql数据库)
- "Swordsman Offer" brush questions print from 1 to the largest n digits
- Neo4j 4.X:导入OWL文件
- Mysql如何对两张表的相同字段,同时查询两张数据表
- Eject stubborn hard drives with diskpart's offline command
- 【TPC-DS】25张表的详细介绍,SQL的查询特征
- MySQL or使索引失效
- mysql服务器上的mysql这个实例中表的介绍
- 熊市中预言机,牛市中的战斗机,藏宝计划起飞,坐稳扶好!
猜你喜欢
Shell运维开发基础(一)
day12---接口和协议
二进制日志过期时间设置expire_logs_days
IDEA的database使用教程(使用mysql数据库)
AI中台序列标注任务:三个数据集构造过程记录
Redis分布式锁
Mysql如何对两张表的相同字段,同时查询两张数据表
[Kaggle combat] Prediction of the number of survivors of the Titanic (from zero to submission to Kaggle to model saving and restoration)
行业洞察 | 如何更好的实现与虚拟人的互动体验?
mysql备份时的快照原理
随机推荐
Laya中关于摄像机跟随人物移动或者点击人物碰撞器触发事件的Demo
mysqlbinlog: unknown variable 'default-character-set=utf8'
安装mysql-workbench
合并两个有序链表
ArcEngine(四)MapControl_OnMouseDown的使用
品牌方发行NFT时,应如何考量实用性?
Neo4j 4.X:导入OWL文件
WPF 学习笔记《WPF样式基础》
面试介绍项目经验(转)
Windows安装MySQL(MIS)
进程的创建
ceph简介
Redis的基础与django使用redis
uni-app 顶部选项卡吸附效果 demo(整理)
mysql存生僻字奇怪问题,mysql为什么不能辨别mb4字符?
mysql系统变量与状态变量
HCIP实验(06)
tolower函数
redis stream 实现消息队列
mysql备份时的快照原理