当前位置: 首页 > news >正文

力扣239.滑动窗口最大值

给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。

返回滑动窗口中的最大值

示例 1:

输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值 --------------- ----- [1 3 -1] -3 5 3 6 73
class Solution: def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]: #思路 维护单调队列 使用保证队首为窗口内最大值 队列内idx单调上升 idx对应的nums[idx]单调下降 # from collections import deque pq = deque(maxlen = k) result = [] # for idx,val in enumerate(nums): # if pq and idx-pq[0][0]>=k: # pq.popleft() # while pq and val>pq[-1][1]: # pq.pop() # pq.append((idx,val)) # if idx>=k-1: # result.append(pq[0][1]) for idx in range(len(nums)): if pq and idx-pq[0]>=k: pq.popleft() while pq and nums[idx]>nums[pq[-1]]: pq.pop() pq.append(idx) if idx>=k-1: result.append(nums[pq[0]]) return result
1 [3 -1 -3] 5 3 6 731 3 [-1 -3 5] 3 6 751 3 -1 [-3 5 3] 6 751 3 -1 -3 [5 3 6] 761 3 -1 -3 5 [3 6 7]7

示例 2:

输入:nums = [1], k = 1输出:[1]

提示:

  • 1 <= nums.length <= 105
  • -104 <= nums[i] <= 104
  • 1 <= k <= nums.length

思路:

维护一个单调队列,其中记录数组下标idx,保证队列中idx单调递增,对应的nums[idx]单调递减,当前队首idx对应的元素nums[idx]始终为窗口内最大值;根据当前遍历下表实时更新窗口最大值(判断是否需要.popleft())

http://www.cnnetsun.cn/news/1642937.html

相关文章:

  • 好写作AI|AI辅助硕士初稿:从数据分析到结论生成的完整链路
  • Qwen3-14B大模型可观测性:推理延迟、显存占用、Token吞吐监控体系
  • Java 21 ZGC默认行为变更详解:不改这4个参数,你的微服务将倒退回G1时代
  • 复古未来主义UI设计揭秘:Pixel Script Temple像素CSS架构与GPU渲染协同方案
  • 终极3分钟指南:让老旧电脑也能安装Windows 11的完整解决方案
  • 【AI模型】部署-平台方案选择
  • OpenClaw+Phi-3-vision-128k-instruct:智能菜谱生成与购物清单
  • OpenClaw Docker 部署中的**安全漏洞和风险点**
  • uniApp实现跨平台跳转支付宝小程序的完整方案
  • 硬字幕智能消除技术:从行业痛点到AI解决方案的突破
  • Graphormer开源模型优势解析:纯Transformer架构对长程分子相互作用建模
  • WarcraftHelper技术指南:解决魔兽争霸III现代系统兼容问题的完整方案
  • WarcraftHelper技术配置指南:魔兽争霸3现代化兼容解决方案
  • Obsidian PDF++: 革新PDF注释体验的双向链接解决方案
  • 开源烧录工具esptool:从入门到精通的全场景应用指南
  • 从 Claude Code 泄露的 50 万行代码中,我们能学到什么,又可以借鉴哪些设计?
  • 用GLM-OCR搭建智能档案管理系统:批量解析历史文档,提升工作效率
  • 星穹铁道全能助手:March7thAssistant自动化解决方案
  • 超透镜设计:从逆向到深度学习与RCWA算法的奇妙融合
  • DriverStore Explorer:开源驱动管理工具释放磁盘空间的高效解决方案
  • VUE前端项目的搭建过程
  • 【好靶场】你能找到上传路径吗?
  • Graphormer一文详解:Graphormer在OGB-lsc上的leaderboard表现与技术突破
  • 探索 Trnsys 系统在暖通领域的仿真奥秘
  • CALICO:让大视觉语言模型学会“找茬”——多图像部件级语义共分割新突破
  • 新手必看:nli-distilroberta-base快速上手教程,一键启动推理服务
  • 三自由度机械手-工业机器人(说明书+CAD图纸)
  • LeetCode 最长回文子串:python 题解
  • AudioSeal Pixel Studio一文详解:Streamlit界面+FFmpeg后端完整工作流
  • Phi-4-mini-reasoning效果验证:在Codeforces Div2 C类题目上的AC率实测报告