class Solution {
public:
vector<int> maxInWindows(const vector<int>& num, unsigned int size) {
int que[10010], h = 0, t = -1;
memset(que, 0, sizeof(que));
vector<int>ans;
for (int i = 0; i < num.size(); i++) {
if (abs(i - que[h]) + 1 > size)h++;
if (h > t)que[++t] = i;
while (h <= t && num[i] >= num[que[t]])t--;
que[++t] = i;
if (i >= size - 1)ans.push_back(num[que[h]]);
}
return ans;
}
};

京公网安备 11010502036488号