当前位置: 首页 > web >正文

25.5.13

 感觉很久没有写算法题了,先来个滑动队列模板题试试水,就是用双端队列来实现会很方便,拿结构体来记录是第几个数和数的值即可,再定义两个双端队列,一个使他的值单调递增一个使他的值单调递减 使队头元素为最大值或者是最小值,当超过范围k时从队头弹出元素

#include<iostream>
#include<deque>
using namespace std;
struct sq {int num, val;
};
int x;
int a[3][1000010];
deque<sq>que1;
deque<sq>que2;
int main() {int n, k;cin >> n >> k;sq m;int cnt = 1;for (int i = 1; i <=n; i++) {cin >> x;m.num = i; m.val = x;while (!que1.empty() && x >=que1.back().val) que1.pop_back();while (!que2.empty() && x <= que2.back().val) que2.pop_back();que1.push_back(m);que2.push_back(m);while (i - k >= que1.front().num)que1.pop_front();while (i - k >= que2.front().num)que2.pop_front();if (i>=k){a[0][cnt] = que1.front().val;a[1][cnt] = que2.front().val;cnt++;}}for (int i = 1; i < cnt; i++) {cout << a[1][i] << " ";}cout << endl;for (int i = 1; i < cnt; i++) {cout << a[0][i] << " ";}return 0;
}

http://www.xdnf.cn/news/5961.html

相关文章:

  • 2025年金融创新、区块链与信息技术国际会议(FRCIT 2025 2025)
  • 深入解析 I/O 模型:原理、区别与 Java 实践
  • 【Redis 进阶】集群
  • mysql环境配置
  • 锐浪报表 Grid++Report 打印“跨页”文本,解决“文字被中间截断”问题
  • NLTK库: 数据集3-分类与标注语料(Categorized and Tagged Corpora)
  • Ubuntu 24.04 LTS系统上配置国内时间同步
  • “新五强”争锋,基础大模型玩家再洗牌
  • 第十七章 SPI——读写串行FLASH
  • 新华三H3CNE网络工程师认证—路由参数与比较
  • Timsort 算法
  • 基于Win在VSCode部署运行OpenVINO模型
  • FFmpeg多路节目流复用为一路包含多个节目的输出流
  • Vue框架的基本介绍
  • 蓝桥杯13届国B 出差
  • 微服务,服务粒度多少合适
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(20):复习
  • 【docker】--镜像管理
  • 佰力博科技准静态d33测试的注意事项
  • Java基础知识点集合
  • PNG转ico图标(支持圆角矩形/方形+透明背景)Python脚本 - 随笔
  • Java处理压缩文件的两种方式!!!!
  • python通过curl访问deepseek的API调用案例
  • 该如何备考社工考试?
  • 2025年中期大语言模型实力深度剖析
  • Windows系统配置WSL2及Cuda
  • 【实战】基于 ABP vNext 构建高可用 S7 协议采集平台(西门子 PLC 通信全流程)
  • 【Python生活】如何构建一个跌倒检测的算法?
  • 快速排序、归并排序、计数排序
  • 2025.5.13总结