class Solution {
public:
vector<int> maxInWindows(const vector<int>& num, unsigned int size)
{
vector<int> res;
int len = num.size();
if(size>len || size<1) return res;
deque<int> dq;
dq.push_back(0);
for(int i=1 ; i<size ;i++)
{
if(num[dq.back()]<num[i])
{
dq.pop_back();
}
dq.push_back(i);
}
res.push_back(num[dq.front()]);
for(int j=size ; j<len; j++)
{
if(j-size == dq.front()) dq.pop_front();
while(!dq.empty() && num[dq.back()] < num[j])
{
dq.pop_back();
}
dq.push_back(j);
res.push_back(num[dq.front()]);
}
return res;
}
};
滑动窗口的最大值
最新推荐文章于 2024-01-30 22:51:13 发布