题解 | #滑动窗口的最大值#
滑动窗口的最大值
https://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788
#include <vector>
class Solution {
public:
class myque{
public:
deque<int> que;
void push(int val){
while (!que.empty() && que.back() < val){
que.pop_back();
}
que.push_back(val);
}
void pop(int val){
if (!que.empty() && val == que.front())
que.pop_front();
}
int front(){
return que.front();
}
};
vector<int> maxInWindows(const vector<int>& num, unsigned int size) {
myque que;
vector<int> result;
if (size > num.size() || size == 0)
return result;
for (int i = 0; i < size; i++){
que.push(num[i]);
}
result.push_back(que.front());
for (int i = size; i < num.size(); i++){
que.pop(num[i - size]);
que.push(num[i]);
result.push_back(que.front());
}
return result;
}
};