239. 滑动窗口最大值
admin
2024-02-05 11:57:28
0

文章目录

    • 题目描述
    • 做题思路
    • 代码实现
    • 题目链接

题目描述

给你一个整数数组 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
-104 <= nums[i] <= 104
1 <= k <= nums.length


做题思路

这个题目时Hard类型的,我第一遍看完题目后真实是一脸懵哈😄,甚至连需要使用什么方法都没头绪

然后我就默默的点开了官方的题解,看了一下官方的题解,没看太懂,然后翻了一下评论发现一位大神

写的评论非常清楚,看完它的解释,我叭叭的一顿狂写,过了!!!😄

我大概说一下简单的实现思路,只要理解了,实现起来不要太简单~

题目要求我们求在一个滑动窗口中的最大值,每次滑动窗口只向右移动一位

由上面这个信息可以知道,其实每次我们要求的最大值其实将上一次滑动窗口的最左边

的元素去除之后,剩下的元素加上这次我们新移动到元素的位置,再说的简单一点就是

每次窗口中的元素只有一个发生变化.

利用上面这个性质其实就可以想到利用优先队列,大堆的方式,去构造一个优先队列

我们可以按照降序的方式添加元素,但是考虑到 “最大的元素不在窗口的范围内” 所以我们还需要存入

元素对应的下标,每次都应该判断一下 q.peek() 的下标索引 是否<= i-k 如果小于等于说明当前

优先队列里面的元素虽然是最大的但是已经越界了.此时我们就需要将其出队列

判断完之后我们就可以往数组里面添加元素即可

  • 好了,以上我认为对于本题核心的部分已经总结出来了,如果你看到这里的话,先不要看我下面的代码实现,自己取力扣上看看能不能做出来

代码实现

class Solution {public int[] maxSlidingWindow(int[] nums, int k) {Queue queue=new PriorityQueue<>(new Comparator(){public int compare(int[] p1,int[] p2){return p1[0] != p2[0] ? p2[0]-p1[0] : p1[1]-p2[1];}});for(int i=0;iqueue.offer(new int[]{nums[i],i});}int[] ant=new int[nums.length-k+1];ant[0]=queue.peek()[0];for(int i=k ; iqueue.offer(new int[]{nums[i],i});while(queue.peek()[1]  <= i-k){queue.poll();}ant[i-k+1]=queue.peek()[0];}return ant;}
}

题目链接

239. 滑动窗口最大值

相关内容

热门资讯

“贞子”是什么? “贞子”是什么?山上长得一种植物.果实外边有一层硬皮砸开之后瓤可以吃1998年,由松岛菜菜子、真田广...
海贼王火影死神哪部好看 海贼王火影死神哪部好看这三部动画都很出名,我想问下大家他们各自的含义,还有听听看大家的意见火影胜在剧...
求穿越搞笑的小说 求穿越搞笑的小说俏皮小妞之天下无双极品家丁......
胃镜检查需要全麻吗,大约需要多... 胃镜检查需要全麻吗,大约需要多长时间胃镜根本不用麻醉。。。
《我为歌狂》续集的顺序是什么? 《我为歌狂》续集的顺序是什么?《我为歌狂》有两部互相无关的续集,一部是《我为歌狂终结本8848》,另...
彼岸花开,花开彼岸。花开不见叶... 彼岸花开,花开彼岸。花开不见叶,叶生不见花,相念相惜不相见。传说种的花和叶永不相见,就这样吗?彼岸花...
参天小银瓶好不好? 参天小银瓶好不好?建议买小样试试,每个人肤质都不同。
大耳朵图图简介? 大耳朵图图简介?该剧讲述了小朋友图图和他的父母一家三日的生活琐事,其中图图是个小捣蛋儿,脑瓜里充满了...
狱血魔神觉醒流程 狱血魔神觉醒流程觉醒任务:  达到48级后,找G.S.D接取觉醒任务任务名称 完成条件 觉醒-狂暴...
红莲是怎么死的? 红莲是怎么死的?谁能给我讲一下从红莲和三尾斗,昏迷后被幽鬼丸叫醒一直到红莲死有关红莲的事?先谢谢了,...
中级口译? 中级口译?想考中级口译,不太了解这个考试,有2个问题1,中口先考笔译然后才能口译,中间可以间隔多长时...
实体书是什么意思 实体书是什么意思实体书是什么意思顾名思义,就是指已经出版发行了,并且印刷完成推向市场,读者能够在书店...
求男主角回到过去,又遇上了以前... 求男主角回到过去,又遇上了以前的自己,然后和以前的自己在一起的小说你是的这 是小说?自己爱上自己.那...
治疗肺癌的名老中医 治疗肺癌的名老中医你好,我最近老是觉得腹胀的厉害,经常咳嗽的上不来气,老是觉得嗓子跟有东西似的,开始...
肉唐僧为什么不在嫣牛博上写博客... 肉唐僧为什么不在嫣牛博上写博客了?他可能去西天取经路上到了没有wifi的地方,过两天有网了他就写了~...
给我挚爱的或给我的挚爱用法语怎... 给我挚爱的或给我的挚爱用法语怎么说!“给我挚爱的XXX ”或 “给我的挚爱XXX ”用法语怎么说!~...
大仙让请了一个狐仙在家里我看着... 大仙让请了一个狐仙在家里我看着有点不舒服怎么办?大仙让请了个狐仙在家里,自己看着有点不舒服。好的办法...
英语的八大语法结构是什么? 英语的八大语法结构是什么?1.一般现在时:主语+do/doese.gWecleantheroomev...
风趣机智的白羊座们也会做事常常... 风趣机智的白羊座们也会做事常常马虎不正经?机灵,风趣机智的白羊座们也会做事常常虎头虎尾?白羊座的人虽...
蜡烛的诗句 蜡烛的诗句秋夕 杜牧 银烛秋光冷画屏,轻罗小扇扑流萤。天阶夜色凉如水,坐看牵牛织女星.落红不是无情物...