尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

单调队列-解定长滑窗的最值问题 ( leetcode 239)

单调队列-解定长滑窗的最值问题 ( leetcode 239)
📅 发布时间:2026/7/13 14:53:26

引言

碎碎念,找了很多关于单调队列的说明,但是感觉都不是很本质且直击要害,很多都是在讲算法过程本身,这里贴一下算法思想和代码实现。

leetcode 239 求定长滑动窗口的最大值链接

核心思想为定义并维护下面的循环不变式:

每次循环开始前,队列中的元素为【上一个窗口】的所有元素中大于等于窗口右端点元素值的元素按照降序排列得到的序列的一个【非空子序列】,并规定除了最大值元素和右端点元素外,中间元素允许缺失!

代码,参考了链接

classSolution:defmaxSlidingWindow(self,nums:List[int],k:int)->List[int]:ans=[0]*(len(nums)-k+1)# 窗口个数q=deque()# 双端队列# 核心循环不变式:每次循环开始前,队列中的元素为【上一个窗口】的所有元素中,# 大于等于窗口右端点元素值的元素按照降序排列得到的序列的一个【非空子序列】,# 并规定除了最大值元素和右端点元素外,中间元素允许缺失!(这个是针对第一个窗口的补丁)fori,xinenumerate(nums):# 计算当前滑窗的左端点left=i-k+1# 下面的1,2操作维护当前轮窗口的循环不变式# 1.左边出# 判断上一个窗口的最大值元素是否恰好为上一个窗口的左边界元素:# 如果是,则需要从当前窗口移出,因为窗口整体右移了1位 (注意只有i >=k 才有移出左边界的操作)# 如果不是,不需要进行任何操作ifi>=kandq[0]==left-1:q.popleft()# 2. 右边入,将破坏当前轮循环不变式的元素pop出# 然后再加入当前元素的下标whileqandnums[q[-1]]<=x:q.pop()q.append(i)# 注意保存的是下标# 3. 记录答案ifleft>=0:# 由于队首到队尾单调递减,所以窗口最大值就在队首ans[left]=nums[q[0]]returnans

启发,部分重叠问题都可以从维护循环不变式的角度进行思考构建算法。

相关新闻

  • chocofi社区资源汇总:从入门到精通的所有资源
  • 终极英雄联盟智能助手:3分钟部署,让游戏效率翻倍的全能工具箱
  • C盘里哪些缓存能放心删,哪些又必须留着?三个判断标准讲清楚

最新新闻

  • 基于TVA、VLA和世界模型的三大具身智能范式(15)
  • Agent 高可用设计:多实例部署下的状态同步和故障转移策略
  • DeepSeek-R1-Distill-Qwen-1.5B的KV缓存优化:max_length_for_kv_cache配置技巧终极指南
  • SPT-AKI存档编辑器终极指南:3分钟掌握离线塔科夫存档修改秘籍 [特殊字符]
  • Carbon Components React核心组件深度解析:DataTable、Button、Form等50+组件使用教程
  • TVA与具身智能融合的内在必然性(17)

日新闻

  • AI推荐结果怎么优化:适合深圳少儿素质培训机构的GEO服务商哪家好?全程零代码SAAS操作
  • RAG 实战教学完全指南
  • 企业级API网关架构深度解析:IBM Microgateway的技术实现与选型指南

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号