滑动窗口最大值(力扣239)

解题思路:首先是用暴力循环来解,其次便是用队列来模拟这个滑动窗口,同时要自定义三个函数,一个pop用来弹出来保证滑动窗口的移动,同时我们把最大的放在队列口那里,当每次有更大的就把原来的挤出栈外,一个push用来把前面不够大的元素排挤出队列并且把最大的那个数压入队列,还有一个find来找到最大的元素

代码实现如下:

class Solution {

private:

class MyQueue{

public:

deque<int>a;

void pop(int val){

if(!a.empty()&&val==a.front()){

a.pop_front();

}

}

void push(int val){

while(!a.empty()&&a.back()<val){

a.pop_back();

}a.push_back(val);

}

int findBest(){

return a.front();

}

};

public:

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

MyQueue b;vector<int>result;

for(int i=0;i<k;i++){

b.push(nums[i]);

}

result.push_back(b.findBest());

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

b.pop(nums[i-k]);

b.push(nums[i]);

result.push_back(b.findBest());

}return result;

}

};

相关推荐
墨染点香16 分钟前
LeetCode 刷题【93. 复原 IP 地址】
算法·leetcode·职场和发展
hsjkdhs23 分钟前
C++之类的组合
开发语言·c++·算法
有Li2 小时前
EndoChat:面向内镜手术的基于事实依据的多模态大型语言模型|文献速递-文献分享
大数据·论文阅读·人工智能·算法·文献·医学生
范特西_2 小时前
数组的最大美丽值
数据结构·算法
MicroTech20252 小时前
微算法科技(NASDAQ: MLGO)研发基于 DPoS 框架的 DL-DPoS(深度链接委托权益证明)机制,增强区块链的共识算法
算法·区块链
蒙奇D索大3 小时前
【数据结构】图论核心应用:关键路径算法详解——从AOE网到项目管理实战
数据结构·笔记·学习·考研·算法·图论·改行学it
学c语言的枫子3 小时前
数据结构——Dijkstra算法
数据结构·算法
Asmalin4 小时前
【代码随想录day 29】 力扣 860.柠檬水找零
算法·leetcode·职场和发展
wan5555cn4 小时前
AI视频生成技术:从想象到现实的视觉革命
人工智能·笔记·深度学习·算法·音视频
程序员小白条5 小时前
度小满运维开发一面
java·运维·python·职场和发展·运维开发