#include <vector>
#include <deque>
using namespace std;
vector<int> maxInWindow(const vector<int>& num,int size){
vector<int> maxInWindow;
if (num.size()>=size&&size>=1)
{
deque<int> index;
for (int i = 0; i < size; i++)
{
while (!index.empty()&&num[i]>=num[index.back()])
{
index.pop_back();
}
index.push_back(i);
}
for (int i = size; i < num.size(); i++)
{
maxInWindow.push_back(num[index.front()]);
while (!index.empty()&&num[i]>=num[index.back()])
{
index.pop_back();
}
if (!index.empty()&&index.front()<=(i-size))
{
index.pop_front();
}
index.push_back(i);
}
maxInWindow.push_back(num[index.front()]);
}
return maxInWindow;
}
滑动窗口的最大值
最新推荐文章于 2024-09-12 23:26:21 发布