239. 滑动窗口最大值
思路
维护一个n双端tan队列,使得每次更新,双端队列的First值都是最大值,
具体做法:
1、 先将前k个值压入双端队列,在压入的过程中,若正在压入的值大于队尾的值,剔除队尾的值,直到队列为空或者队尾的值大于等于当前的值。
2、每次滑动的时候,如果窗口左边要抛弃的值正好为前一次队列的最大值,将队列的该值弹出对头,让后让窗口右边即将加入的值按照1,的方式塞入
代码
class Solution {
public int[] maxSlidingWindow(int[] nums, int k) {
原创
2020-06-28 09:43:51 ·
88 阅读 ·
0 评论