[第1章 1.2e2] 单调队列-滑动窗口

106 字
1 分钟
[第1章 1.2e2] 单调队列-滑动窗口
//666模拟了个优先队列,让这个队列头存当前最值
//但队列内存的是位置,便于比较和输出
//超出窗口后自动删掉前面多余部分
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<ll> a;
int main(){
ll n,k;
cin>>n>>k;
vector<ll> a(n);
for(ll i=0;i<n;i++)cin>>a[i];
deque<ll> lo;
bool fla=false;
for(ll i=0;i<n;i++){
while(!lo.empty()&&a[lo.back()]>a[i])lo.pop_back();
lo.push_back(i);
if(i>=k-1){
while(!lo.empty()&&i-lo.front()>=k)lo.pop_front();
if(fla)cout<<" ";
cout<<a[lo.front()];
fla=true;
}
}
cout<<endl;
lo.clear();
fla=false;
for(ll i=0;i<n;i++){
while(!lo.empty()&&a[lo.back()]<a[i])lo.pop_back();
lo.push_back(i);
if(i>=k-1){
while(!lo.empty()&&i-lo.front()>=k)lo.pop_front();
if(fla)cout<<" ";
cout<<a[lo.front()];
fla=true;
}
}
cout<<endl;
return 0;
}

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
[第1章 1.2e2] 单调队列-滑动窗口
https://hecloud.top/posts/12e2-单调队列-滑动窗口/
作者
贺小云
发布于
2026-06-26
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
贺小云
一个热爱技术与折腾的博客,serverless起高楼,静态构建一键走,专注于CDN调优,2秒之内到德州。
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
碎碎念
站点统计
文章
46
分类
4
标签
0
总字数
23,903
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.16.5
文章许可
CC BY-NC-SA 4.0

当前页面没有目录