剑指 Offer 59 - I. 滑动窗口的最大值

class Solution {
public:
vector<int> maxSlidingWindow(vector<int>& nums, int k) {
if(nums.size() == 0) return nums;
vector<int> ans;
deque<int> Q;
for(int ii = 0; ii < nums.size(); ii++) {
if(ii >= k) {
ans.push_back(Q.front());
if(nums[ii - k] == Q.front()) Q.pop_front();
}
while(!Q.empty() && Q.back() < nums[ii]) Q.pop_back();
Q.push_back(nums[ii]);
}
ans.push_back(Q.front());
return ans;
}
};

class Solution {
public:
vector<int> maxSlidingWindow(vector<int>& nums, int k) {
vector<int> ans;
for(int ii = k - 1; ii < nums.size(); ii++) {
int max_val = nums[ii];
for(int jj = max(0, ii - k + 1); jj < ii; jj++) {
max_val = max(max_val, nums[jj]);
}
ans.push_back(max_val);
}
return ans;
}
};