题解 | #滑动窗口的最大值#
滑动窗口的最大值
http://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788
吐血题,官方编译会有问题。
q[h] < i-size+1 会乱数据
要提前 int len = i-size +1. 靠北
class Solution {
public:
vector<int> maxInWindows(const vector<int>& num, unsigned int size) {
vector<int> ans;
if(size==0||size>num.size()) return ans;
int q[100000];
int h=0,t=-1;
for(int i=0;i<num.size();i++){
int x=num[i];
int len=i-size+1;
while(h<=t&&q[h]<len) h++;
while(h<=t&&num[q[t]]<x) t--;//维护降序
q[++t]=i;
if(i>=size-1) ans.push_back(num[q[h]]);
}
return ans;
}
}; 

阿里云工作强度 667人发布