样例过不了,但测试点可以
2026-08-11 10:30:21
发布于:四川
4阅读
0回复
0点赞
题目《滑动窗口》
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+5;
int n,k,a[maxn];
int main(){
cin>>n>>k;
deque<int> d;
for(int i=1;i<=n;i++){
cin>>a[i];
}
d.clear();
for(int i=1;i<=n;i++){
while(!d.empty()&&d.front()<i-k+1){
d.pop_front();
}
while(!d.empty()&&a[d.back()]>=a[i]){
d.pop_back();
}
d.push_back(i);
if(i>=k){
cout<<a[d.front()]<<' ';
}
}
cout<<endl;
for(int i=1;i<=n;i++){
while(!d.empty()&&d.front()<i-k+1){
d.pop_front();
}
while(!d.empty()&&a[d.back()]<=a[i]){
d.pop_back();
}
d.push_back(i);
if(i>=k){
cout<<a[d.front()]<<' ';
}
}
}
图片为证



这里空空如也





有帮助,赞一个