class Solution { public: vector<int> maxInWindows(const vector<int>& num, unsigned int size) { deque<int> dep; vector<int> rev; for(int i=0;i<num.size();i++) { while(dep.size()&&num[dep.back()]<=num[i]) { dep.pop_back(); } if(dep.size()&&(i-dep.front()+1)>size) dep.pop_front(); dep.push_back(i); if(size&&i+1>=size) rev.push_back(num[dep.front()]); } return rev; } };
原文:https://www.cnblogs.com/JsonZhangAA/p/12157777.html