网易首页 > 网易号 > 正文 申请入驻

滑动窗口算法:3行代码之差,性能相差10倍的两种解法之争

0
分享至

面试官在白板上写下"最长无重复子串",候选人的手指悬在键盘上方——这道题每年让多少工程师在屏幕前卡住,又有多少人在事后才想起:原来窗口的边界移动藏着这么多细节。

问题现场:一道经典题的隐藏复杂度

给定字符串"abcabcbb",要求找出最长的不含重复字符的连续子串。表面看是双指针遍历,实则暗藏陷阱:右指针只管扩张,左指针何时收缩?遇到重复字符是跳一步还是直接跳转?

两种解法就此分道扬镳。

解法一:暴力哈希的O(n²)陷阱

最直观的思路:右指针每走一步,用HashSet检查窗口内是否重复。一旦发现重复,左指针逐步右移,直到冲突消失。

while (r < s.length()) {if (set.contains(s.charAt(r))) {set.remove(s.charAt(l++));  // 左指针蜗牛式爬行} else {set.add(s.charAt(r++));max = Math.max(max, r - l);}

问题在于:左指针可能重复经过同一字符多次。字符串"aaaaaa"会让左指针遍历5+4+3+2+1=15次,而非最优的6次。

解法二:数组预存的O(n)跳跃

核心洞察:字符出现过的位置可以直接"记住",左指针无需试探,直接瞬移到重复位置之后。

int[] lastPos = new int[256];Arrays.fill(lastPos, -1);while (r < s.length()) {char c = s.charAt(r);if (lastPos[c] >= l) {      // 重复发生在当前窗口内l = lastPos[c] + 1;      // 左指针直接跳跃lastPos[c] = r;              // 更新最新位置max = Math.max(max, r - l + 1);r++;}

256长度的数组替代HashSet,索引访问O(1);左指针从不回退,整体线性扫描。

关键差异:一个条件的判断顺序

解法二的精髓在第三行:if (lastPos[c] >= l)。若省略此判断,直接将l跳到lastPos[c] + 1,会错误地把窗口缩到历史重复点——即便该字符早已滑出窗口。

面试现场,写出解法一已算及格;但能否说出"数组比HashSet快在CPU缓存局部性",能否把空间复杂度从O(min(m,n))压到O(1)(字符集大小固定),才是区分度的来源。

滑动窗口的模板人人会背,边界条件的毫厘之差,决定了代码是AC还是TLE。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
台湾最新民调出炉,蒋万安、郑丽文支持率惊人,民众党大将已表态

台湾最新民调出炉,蒋万安、郑丽文支持率惊人,民众党大将已表态

蔺玄觞
2026-04-25 04:01:16
首次拉清单,“中方忍不了欧盟了”

首次拉清单,“中方忍不了欧盟了”

观察者网
2026-04-24 22:46:16
罗翔:如果一个人突然努力工作,业余时间开始学习,不再参加社交活动,那么,身边的人可能不仅不会帮他,还会拉他下来,原因就一个!

罗翔:如果一个人突然努力工作,业余时间开始学习,不再参加社交活动,那么,身边的人可能不仅不会帮他,还会拉他下来,原因就一个!

谭老师地理大课堂
2026-04-22 00:03:57
两只大熊猫将前往亚特兰大,外交部:将为增进中美人民友谊做出新贡献

两只大熊猫将前往亚特兰大,外交部:将为增进中美人民友谊做出新贡献

澎湃新闻
2026-04-24 15:30:30
为了摆脱“右派”家属身份,她果断离婚并嫁给恩师,令人唏嘘!

为了摆脱“右派”家属身份,她果断离婚并嫁给恩师,令人唏嘘!

鹤羽说个事
2026-04-17 22:54:53
里夫斯确定缺战G3!名记称其G4复出 杜兰特休战让湖人没必要冒险

里夫斯确定缺战G3!名记称其G4复出 杜兰特休战让湖人没必要冒险

罗说NBA
2026-04-25 07:38:55
歌尔股份2025年营收965.50亿元同比下滑4.36%,归母净利润39.40亿元同比增长47.85%

歌尔股份2025年营收965.50亿元同比下滑4.36%,归母净利润39.40亿元同比增长47.85%

金融界
2026-04-24 23:45:11
姚迪留洋被确认!再次联手朱婷,效仿刁琳宇,老师变回职业球员

姚迪留洋被确认!再次联手朱婷,效仿刁琳宇,老师变回职业球员

跑者排球视角
2026-04-24 23:24:41
后悔来不及了!美商务部长:中方已改主意,美方想卖也卖不掉

后悔来不及了!美商务部长:中方已改主意,美方想卖也卖不掉

小冠说娱
2026-04-25 06:55:05
创造历史! 英特尔股价飙升27% 突破26年前历史高点

创造历史! 英特尔股价飙升27% 突破26年前历史高点

每日经济新闻
2026-04-24 21:53:24
“只顾自己纹眉,不管女儿死活?”14岁女孩生日照,脸上全是槽点

“只顾自己纹眉,不管女儿死活?”14岁女孩生日照,脸上全是槽点

泽泽先生
2026-04-18 22:17:16
1979年打越南,高层其实吵翻了天?叶剑英粟裕为何反对出兵?

1979年打越南,高层其实吵翻了天?叶剑英粟裕为何反对出兵?

鹤羽说个事
2026-04-22 22:36:00
王近山不经请示干掉日本战地观战团,毛主席:早就听说有个王疯子

王近山不经请示干掉日本战地观战团,毛主席:早就听说有个王疯子

鹤羽说个事
2026-04-20 22:56:36
东风 - 31 泄密大案:总工程师被美色策反,国之重器险遭灭顶之灾

东风 - 31 泄密大案:总工程师被美色策反,国之重器险遭灭顶之灾

干史人
2026-04-18 13:44:12
心脏为什么不得癌症?Science:心跳的机械力抑制心脏中癌细胞增殖,带来癌症治疗新思路

心脏为什么不得癌症?Science:心跳的机械力抑制心脏中癌细胞增殖,带来癌症治疗新思路

生物世界
2026-04-24 12:16:33
壕无人性!巴黎砸天价年薪,硬挖阿森纳 9500 万王牌

壕无人性!巴黎砸天价年薪,硬挖阿森纳 9500 万王牌

澜归序
2026-04-25 07:06:22
蔡振华现状:65岁圆满无遗憾,享受退休生活,唯独37岁儿子让他愁

蔡振华现状:65岁圆满无遗憾,享受退休生活,唯独37岁儿子让他愁

洲洲影视娱评
2026-04-14 13:58:26
广东91-93不敌福建 球员评价:4人优秀,8人低迷

广东91-93不敌福建 球员评价:4人优秀,8人低迷

篮球资讯达人
2026-04-24 21:36:08
打击伊朗为何不需要太多美军呢?因为只需打垮12.5万革命卫队而已

打击伊朗为何不需要太多美军呢?因为只需打垮12.5万革命卫队而已

番外行
2026-04-01 08:27:36
你以为麻豆传媒是卖片的,其实它是卖人的

你以为麻豆传媒是卖片的,其实它是卖人的

创始人笔记
2026-04-23 21:44:50
2026-04-25 10:35:00
算力游侠
算力游侠
游走在API与报错之间,用魔法(AI)打败魔法的非硬核玩家。
1752文章数 21关注度
往期回顾 全部

科技要闻

DeepSeek V4牵手华为,价格依然"屠夫级"

头条要闻

声称考虑效仿伊朗在马六甲收"过路费"后 印尼财长改口

头条要闻

声称考虑效仿伊朗在马六甲收"过路费"后 印尼财长改口

体育要闻

上海男篮23连胜+主场全胜 姚明之后最强一季

娱乐要闻

邓超最大的幸运,就是遇见孙俪

财经要闻

别高估英伟达,别低估DeepSeek

汽车要闻

2026款乐道L90亮相北京车展 乐道L80正式官宣

态度原创

教育
房产
手机
数码
军事航空

教育要闻

不是所有孩子都适合留洋 董路的微博视频

房产要闻

新一轮教育大爆发来了!海口,开始疯狂建学校!

手机要闻

全面回归OPPO!realme真我商城明日起停止运营

数码要闻

内存价格终于松口了!DDR5最高狂降22%:创下四个月新低

军事要闻

美防长:战事不会“没完没了”

无障碍浏览 进入关怀版