吐血题,官方编译会有问题。
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;
}
}; 
京公网安备 11010502036488号