c++
class Solution {
public:
vector<int> maxSlidingWindow(vector<int>& nums, int k) {
deque<int> que;
vector<int> ans;
for (int i = 0; i < nums.size(); i++) {
while (que.size() && nums[que.back()] < nums[i]) que.pop_back();
que.push_back(i);
if (i - que.front() == k) que.pop_front();
if (i + 1 < k) continue;
ans.push_back(nums[que.front()]);
}
return ans;
}
};
js
var maxSlidingWindow = function(nums, k) {
var que = [];
var ans = [];
for (var i = 0; i < nums.length; i++) {
while (que.length && nums[que[que.length - 1]] < nums[i]) que.pop();
que.push(i);
if (i - que[0] == k) que.shift();
if (i + 1 < k) continue;
ans.push(nums[que[0]]);
}
return ans;
};