LeetCode:239. 滑动窗口最大值

class MonotonicQueue{

deque<int>maxq;

public:

void push(int n){

//将小于n的元素全部删除

while(!maxq.empty()&&maxq.back()<n){

maxq.pop_back();

}

maxq.push_back(n);

}

int max(){

return maxq.front();

}

void pop(int n){

if(n==maxq.front()){

maxq.pop_front();

}

}

};

class Solution {

public:

vector<int> maxSlidingWindow(vector<int>& nums, int k) {

MonotonicQueue window;

vector<int>res;

for(int i=0;i<nums.size();i++){

if(i<k-1){

window.push(nums[i]);

}

else{

window.push(nums[i]);

res.push_back(window.max());

window.pop(nums[i-k+1]);

}

}

return res;

}

};

相关推荐
山甫aa8 分钟前
差分数组 ----- 从零开始的数据结构
数据结构
早日退休!!!17 分钟前
《数据结构选型指南》笔记
数据结构·数据库·oracle
Beginner x_u35 分钟前
链表专题:JS 实现原理与高频算法题总结
javascript·算法·链表
丑八怪大丑43 分钟前
Java数据结构与集合源码
数据结构
c++之路2 小时前
C++信号处理
开发语言·c++·信号处理
_深海凉_4 小时前
LeetCode热题100-寻找两个正序数组的中位数
算法·leetcode·职场和发展
故事还在继续吗4 小时前
C++20关键特性
开发语言·c++·c++20
青少儿编程课堂4 小时前
2026青少儿信息素养大赛备赛指南!Python/Scratch/C++备考要点
开发语言·c++·python
踩坑记录5 小时前
leetcode hot100 寻找两个正序数组的中位数 hard 二分查找 双指针
leetcode
旖-旎5 小时前
深搜练习(电话号码字母组合)(3)
c++·算法·力扣·深度优先遍历