用栈写的 但是时间复杂度是o(n*size)不符合题目的o(n)
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param num int整型vector
* @param size int整型
* @return int整型vector
*/
vector<int> maxInWindows(vector<int>& num, int size)
{
vector<int>res;
stack<int>stk;
int n=num.size();
if(n<size||size==0) return res;
for(int i=0;i<n-size+1;i++)
{
for(int j=i;j<i+size;j++)
{
if(stk.empty())
stk.push(num[j]);
else if(stk.top()<num[j])
{
stk.top()=num[j];
}
}
res.push_back(stk.top());
while(!stk.empty()) stk.pop();
}
return res;
}
};