news 2026/6/10 22:34:22

LeetCode 239.滑动窗口最大值

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 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 7 3
1 [3 -1 -3] 5 3 6 7 3
1 3 [-1 -3 5] 3 6 7 5
1 3 -1 [-3 5 3] 6 7 5
1 3 -1 -3 [5 3 6] 7 6
1 3 -1 -3 5 [3 6 7] 7
示例 2:

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

提示:

1 <= nums.length <= 105^55
-104^44<= nums[i] <= 104^44
1 <= k <= nums.length

单调队列+滑动窗口,队列从头到尾依次递减,一边滑动一边更新队列,队首就是答案:

classSolution{public:vector<int>maxSlidingWindow(vector<int>&nums,intk){vector<int>ans(nums.size()-k+1);deque<int>q;for(inti=0;i<nums.size();++i){// 保证队列是单调递减的,如果末尾元素与当前元素相同,则弹出末尾元素,队列中不会有重复元素while(!q.empty()&&nums[i]>=nums[q.back()]){q.pop_back();}q.push_back(i);if(i<k-1){continue;}// 保证队列头在窗口内if(q.front()<i-k+1){q.pop_front();}ans[i-k+1]=nums[q.front()];}returnans;}};

如果nums的大小为n,其中的元素种类为m,则此算法时间复杂度为O(n),空间复杂度为O(min(m,k))。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 22:32:25

金刚石NV色心量子传感技术:从原理到应用的前沿探索

金刚石NV色心量子传感技术的应用前景金刚石中的氮-空位&#xff08;NV&#xff09;色心是近年来量子传感领域的研究热点。这种原子尺度的缺陷具有独特的量子特性——其自旋态可通过激光和微波精确操控&#xff0c;对外界磁场、温度和电场极为敏感。基于此原理的量子传感器在室温…

作者头像 李华
网站建设 2026/6/10 22:26:17

leecodecode【状态机DP】【2026.6.9打卡-java版本】

买卖股票的最佳时机 要点&#xff1a;只能买一次&#xff0c;维护min&#xff0c;和 ans class Solution {public int maxProfit(int[] prices) {int min Integer.MAX_VALUE;int ans 0;for(int price : prices){min Math.min(min, price);ans Math.max(ans, price - min)…

作者头像 李华
网站建设 2026/6/10 22:21:12

用原生JS手搓一个Flappy Bird小游戏(完整代码+逐行讲解)

用原生JS手搓一个Flappy Bird小游戏&#xff08;完整代码逐行讲解&#xff09;最近有学员问我&#xff1a;"学JavaScript到底有什么用&#xff1f;"我的回答是——它能让你亲手创造世界。今天我们就用不到200行代码&#xff0c;还原那个曾经风靡全球的Flappy Bird。不…

作者头像 李华
网站建设 2026/6/10 22:20:05

IDEA新手避坑指南:从Gitee拉取团队项目到成功运行Tomcat的完整流程

IDEA团队协作实战&#xff1a;从Gitee拉取项目到Tomcat部署的避坑手册刚接触团队协作开发的开发者&#xff0c;往往会在版本控制和环境配置上踩不少坑。记得我第一次用IDEA从Gitee拉取团队项目时&#xff0c;光是解决Tomcat配置问题就花了整整一个下午。本文将分享一套经过实战…

作者头像 李华
网站建设 2026/6/10 22:19:01

从‘地板’到‘灵能’:用Rimworld游戏机制拆解Mod开发底层逻辑

从‘地板’到‘灵能’&#xff1a;用Rimworld游戏机制拆解Mod开发底层逻辑在Rimworld的Mod开发中&#xff0c;许多开发者最初会陷入一个误区&#xff1a;认为只要实现功能即可&#xff0c;却忽略了与游戏本体机制的深度契合。这种割裂感往往导致Mod内容显得"格格不入"…

作者头像 李华