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

滑动窗口最大值:单调队列破局

0
分享至

在面试中,你可以这样解释:“对于大小为k的每个窗口,遍历所有元素,找到最大值。”这种暴力方法最直接的代价是,每个窗口都被完整扫描,很多元素被反复处理。时间复杂度O(N×K),空间复杂度O(1)的代码虽然能跑,但在大数据量下明显吃力。

真正的问题藏在窗口滑动的细节里:每次移动,只有一个元素离开,一个新元素进入。那还有必要把整个窗口的最大值重新算一遍吗?答案是不需要。只要保留那些有资格成为未来最大值的“候选人”,把已经没可能的清除,就能在常数时间内拿到答案。单调队列正是为此而生。

这里的关键观察是,用一个双端队列维护索引,让队列中的元素始终保持递减顺序。这样,队首永远指向当前窗口的最大值。当一个新元素到来时,从队尾把比它小的所有元素索引都删掉——因为它们不可能是之后任何窗口的最大值。同时,把已经滑出窗口的索引从队首移除。

最优解法的四步走非常清晰:第一,检查队首索引是否小于等于i-k,是的话就出队,意味着这个索引已经不属于当前窗口。第二,循环检查队尾索引对应的元素是否小于等于当前元素nums[i],是的话就弹出队尾,因为小元素没有存留价值。第三,将当前索引i加到队尾。第四,当窗口长度达到k,即i >= k-1时,队首索引对应的元素就是该窗口的最大值,放入结果数组。

以数组[1,3,-1,-3,5,3,6,7]和k=3为例走一遍。初始处理索引0(值1)入队。索引1(值3)进来时,队尾的1小于3,被移出,然后3入队。索引2(值-1)直接入队,此时窗口形成,队首对应值3,第一个最大值3。下一滑动,索引3(值-3)入队前,队首索引0虽然早被移出,但队首已变成索引1,仍在窗口内,所以不移除;队尾-1比-3大,保留。-3入队后队首仍是3,最大值仍为3。运行到索引4(值5),此时窗口覆盖[-1,-3,5]。队尾-3、-1依次被5挤出,队列只剩索引4,队首5成为新的最大值。随后依次得到5、6、7,最终输出[3,3,5,5,6,7]。

为什么单调队列这么高效?因为每个索引都只被插入一次、移出一次,所有元素处理次数总量是线性的。队列始终按值递减排列,保证队首就是候选里的最大者。最终,时间复杂度压到O(N),空间复杂度为O(K)。到面试最后,完全可以用一句话概括:“维护一个单调递减的索引双端队列,让队首始终代表当前滑动窗口的最大元素。”

这个模式一旦内化,只要是“滑动窗口”碰上“最大/最小”的组合,第一时间就应想到单调队列。同类问题还包括:滑动窗口最小值、每个窗口第一个负整数、和至少为K的最短子数组、受限制的子序列和等等。掌握这一手,就能把本来需要重复计算的开销,压缩成一次遍历的精准操作。

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

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.

相关推荐
热点推荐
65岁老头用零食哄骗小女孩,对其侵害长达两年,12岁女孩怀孕产子

65岁老头用零食哄骗小女孩,对其侵害长达两年,12岁女孩怀孕产子

易玄
2026-06-27 01:06:14
扎心!骑士夺冠十周年没请他!湖人最大的噩梦啊!

扎心!骑士夺冠十周年没请他!湖人最大的噩梦啊!

柚子说球
2026-06-28 08:01:46
徐帆回应离婚9个月后,冯小刚再陷争议,养女徐朵成导火索

徐帆回应离婚9个月后,冯小刚再陷争议,养女徐朵成导火索

枯蝶
2026-05-21 22:22:13
韩国在实时算分!韩媒:洪明甫真是走了狗屎运!谢谢救世主西班牙

韩国在实时算分!韩媒:洪明甫真是走了狗屎运!谢谢救世主西班牙

舟望停云
2026-06-27 13:36:19
比独行侠送出东契奇更离谱,球迷:见过蠢的,没见过如此蠢的!

比独行侠送出东契奇更离谱,球迷:见过蠢的,没见过如此蠢的!

奇迹行者在刷野
2026-06-27 10:49:24
小牌大耍?陈赫张子萱阿那亚度假,误入他人镜头却反过来呵斥路人

小牌大耍?陈赫张子萱阿那亚度假,误入他人镜头却反过来呵斥路人

仙味少女心
2026-06-27 18:41:54
解放军唯一一次全军覆没的战斗,阵亡被俘九千人,上万人鸣枪致哀

解放军唯一一次全军覆没的战斗,阵亡被俘九千人,上万人鸣枪致哀

雍亲王府
2026-06-26 20:45:03
随着英格兰2-0、克罗地亚2-1,世界杯最新积分榜出炉

随着英格兰2-0、克罗地亚2-1,世界杯最新积分榜出炉

侧身凌空斩
2026-06-28 07:02:38
斯卡洛尼:梅西将在末轮替补,目标是让球队以同样的方式比赛

斯卡洛尼:梅西将在末轮替补,目标是让球队以同样的方式比赛

懂球帝
2026-06-27 17:30:44
我爸工资2w全部上交我妈,他动手术要60w,我妈扑通一声跪地下了

我爸工资2w全部上交我妈,他动手术要60w,我妈扑通一声跪地下了

黑猫故事所
2026-06-25 20:26:46
韩国队命悬一线 6队抢走名额 出线剩奇迹:最后2组条件需全部满足

韩国队命悬一线 6队抢走名额 出线剩奇迹:最后2组条件需全部满足

我爱英超
2026-06-28 07:08:25
1场1-0,让世界杯K组更乱了,葡萄牙进退两难,C罗这次别无选择

1场1-0,让世界杯K组更乱了,葡萄牙进退两难,C罗这次别无选择

云隐南山
2026-06-27 15:56:37
身高1米3 体重230斤!美国一7岁男童"胖到去世"

身高1米3 体重230斤!美国一7岁男童"胖到去世"

看看新闻Knews
2026-06-27 21:37:48
尴尬!穿光腿神器忘穿裙子;脏内裤挂在腰带外;裙子塞到丝袜里

尴尬!穿光腿神器忘穿裙子;脏内裤挂在腰带外;裙子塞到丝袜里

夜深爱杂谈
2026-06-27 22:06:34
别太悲观!韩国最新出线形势:还剩3组未踢,需2组配合,依旧有戏

别太悲观!韩国最新出线形势:还剩3组未踢,需2组配合,依旧有戏

萌兰聊个球
2026-06-27 13:44:25
太突然了!交叉韧带断裂,躺赚变躺亏5000万...

太突然了!交叉韧带断裂,躺赚变躺亏5000万...

体育新角度
2026-06-27 17:42:03
最新中国癌症数据出炉!Nature综述:中国癌症负担持续攀升,占全球1/4,肺癌新发、死亡双双登顶

最新中国癌症数据出炉!Nature综述:中国癌症负担持续攀升,占全球1/4,肺癌新发、死亡双双登顶

医诺维
2026-06-26 17:32:17
全线涨价20%-30%!氟半导体材料爆发,六大龙头迎来主升浪

全线涨价20%-30%!氟半导体材料爆发,六大龙头迎来主升浪

趣味萌宠的日常
2026-06-27 20:19:39
光速为何是宇宙速度极限?如果光速无限,万物将不复存在!

光速为何是宇宙速度极限?如果光速无限,万物将不复存在!

宇宙时空
2026-06-26 22:00:08
世界杯韩国出线出局五五开,命运彻底交给剩余三场小组赛

世界杯韩国出线出局五五开,命运彻底交给剩余三场小组赛

大汉体育解说
2026-06-27 14:10:28
2026-06-28 08:40:50
野生运营
野生运营
懂点产品,懂点AI,正在努力给平淡日子搞点新花样。
263文章数 54关注度
往期回顾 全部

头条要闻

佛得角队长被指正因强奸指控接受调查 事发于今年3月

头条要闻

佛得角队长被指正因强奸指控接受调查 事发于今年3月

体育要闻

世界杯最火门将,站到了阿根廷和梅西面前

娱乐要闻

四提白玉兰终封后,杨紫:仍觉不真实

财经要闻

两只股票撑起的韩国股市,半年熔断 33 次

科技要闻

GPT-5.6发布,你暂时用不了!Mythos也放行

汽车要闻

搭载华为乾崑ADS 5 全新猛士M817上市售29.99万起

态度原创

家居
数码
游戏
艺术
公开课

家居要闻

绿意盎然 自然之境

数码要闻

vivo X Fold6体验: AI交互直觉最对味的折叠大屏!

《GTA6》PC版遥遥无期!销量太低不备重视?

艺术要闻

看完他的局部,我原谅了整个世界的不完美

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版