class Solution {
public:
vector<int> maxInWindows(const vector<int>& num, unsigned int size)
{
vector<int> result;
if (size == 0 || num.size() == 0 || num.size() < size) return result;
map<int, int> winMap;
for (size_t i = 0; i < num.size(); ++ i) {
if (i <= size-1) {
winMap[num[i]] ++;
} else {
winMap[num[i-size]] --;
if (winMap[num[i-size]] == 0) {
winMap.erase(num[i-size]);
}
winMap[num[i]] ++;
}
if (i>=size-1) result.push_back(winMap.rbegin()->first);
}
return result;
}
};


京公网安备 11010502036488号