当前位置:网站首页>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博客:程序员欣宸
边栏推荐
猜你喜欢
随机推荐
数仓4.0(一)
mysqlbinlog: unknown variable 'default-character-set=utf8'
并发之固定运行和交替运行方案
如何使用电子邮件营销在五个步骤中增加产品评论
frp: open source intranet penetration tool
分析型数据库性能测试总结
ArcEngine(五)用ICommand接口实现放大缩小
AcWing 3391. 今年的第几天?(简单题)
图解Kernel Device Tree(设备树)的使用
差分(前缀和的逆运算)
36氪详情页AES
数仓4.0(二)------ 业务数据采集平台
ArcEngine(六)用tool工具实现拉框放大缩小和平移
ArcEngine(二)加载地图文档
netstat 及 ifconfig 是如何工作的。
rust 学习笔记
Unity编辑器扩展批量修改图片名称
牛客 - 最佳直播时间 (差分)
ArcEngine (4) Use of MapControl_OnMouseDown
Karatsuba大数乘法的Verilog实现