题目描述
思路分析
经典单调队列应用——滑动窗口问题
可以看成模板题。
代码实现
class Solution {
public:
vector<int> maxSlidingWindow(vector<int>& nums, int k) {
deque<int> q;
vector<int> ans;
for(int i=0;i<nums.size();i++){
if(q.size()&&i-k+1>q.front()) q.pop_front();
while(q.size()&&nums[i]>=nums[q.back()]) q.pop_back();
q.push_back(i);
if(i>=k-1) ans.push_back(nums[q.front()]);
}
return ans;
}
};