当前位置:网站首页>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博客:程序员欣宸
边栏推荐
- Evaluate:huggingface评价指标模块入门详细介绍
- Laya中关于摄像机跟随人物移动或者点击人物碰撞器触发事件的Demo
- ArcEngine(二)加载地图文档
- netstat 及 ifconfig 是如何工作的。
- Logic Pro X自带音色库列表
- 流行和声基础大笔记
- 【论文笔记】一种基于启发式奖赏函数的分层强化学习方法
- 服务器资源监控工具-nmon、nmon_analyser
- ArcEngine (2) loading the map document
- [Kaggle combat] Prediction of the number of survivors of the Titanic (from zero to submission to Kaggle to model saving and restoration)
猜你喜欢
随机推荐
“唯一索引允许为空“ 的说法是不严谨的
【论文笔记】一种基于启发式奖赏函数的分层强化学习方法
HCIP练习02(OSPF)
最佳高质量字体
mysql 8.0.12 安装配置方法并--设置修改密码
Dapr 与 NestJs ,实战编写一个 Pub & Sub 装饰器
sqlite date field plus one day
【Kaggle实战】泰坦尼克号生存人数预测(从零到提交到Kaggle再到模型的保存与恢复)
vim 折叠函数
Charles packet capture tool learning record
Fortify白盒神器20.1.1下载及安装(非百度网盘)
国内IT市场还有发展吗?有哪些创新好用的IT运维工具可以推荐?
编程踩坑合集
品牌方发行NFT时,应如何考量实用性?
【收获合辑】k-NN与检索任务的异同+jupyter转pdf
Docker启动mysql
swiper分类菜单双层效果demo(整理)
C# 一周入门高级编程之《C#-接口》Day Two
36氪详情页AES
Laya中关于摄像机跟随人物移动或者点击人物碰撞器触发事件的Demo