-- 暴力 -- 删除多余元素 -- 单调性 -- 极值
1.保证滑动窗口的合法性
2.保证滑动窗口的性质(单调性)
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int num[N],q[N],head,tail = -1;
int main(){
int n,k;
cin>>n>>k;
for(int i=0;i<n;i++){
cin>>num[i];
if(i - k + 1 > q[head])
head++;
while(head <= tail and num[i] <= num[q[tail]])
tail--;
q[++tail] = i;
if(i - k + 1 >= 0) cout<<num[q[head]]<<" ";
}
cout<<endl;
head = 0,tail = -1;
for(int i=0;i<n;i++){
cin>>num[i];
if(i - k + 1 > q[head])
head++;
while(head <= tail and num[i] >= num[q[tail]])
tail--;
q[++tail] = i;
if(i - k + 1 >= 0) cout<<num[q[head]]<<" ";
}
return 0;
}