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

【数据结构】单调队列

参考这篇文章

单调队列的作用是:给定一个长度为 n 的数组,维护长度为 m 的区间最大/小值

(下面以维护区间最小值为例,最大值相反)

简单来说就是维护一个 deque,deque 的队头是当前最小值的序号,其余所有元素都是之后可能成为最小值的元素的序号(只有可能成为最小值,元素的序号才会存在于队中)

时间复杂度 O ( n ) O(n) O(n)

模板:

deque<int> q; // 存储序号
for (int i = 0; i < n; ++i)
{if (!q.empty() && i - q.front() >= m) // 长度超出的从前开始删,直到删到长度符合要求为止q.pop_front();while (!q.empty() && V[q.back()] > V[i]) // 从队尾开始,凡是比新入队的大的,那它再也不可能成为最小值了,就直接删掉(求区间最大值把这里改成<即可)q.pop_back();q.push_back(i); // 新元素序号入队if (i >= m - 1)cout << V[q.front()] << " ";
}
http://www.lryc.cn/news/291087.html

相关文章:

  • 《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树(代码python实践)
  • 电脑可以设置代理IP吗
  • Zookeeper服务注册与发现实战
  • 【LeetCode】每日一题 2024_1_30 使循环数组所有元素相等的最少秒数(哈希、贪心、扩散)
  • uni-app vite+ts+vue3模式 集成微信云开发
  • 一个程序入库出现死锁问题的排查
  • 记录解决报错--These dependencies were not found jsencrypt lodash-es
  • 【极数系列】Flink集成DataSource读取集合数据(07)
  • React hooks子组件暴露方法示例
  • 数据结构:大顶堆、小顶堆
  • 电加热热水器上架亚马逊美国站需要的UL174报告
  • 使用visual studio写一个简单的c语言程序
  • 怎么创建facebook广告
  • pdf怎么转成高清图?pdf在线转换器推荐分享
  • postgresql 查询缓慢原因分析
  • N65总账凭证管理凭证查询(sql)
  • 投资1300万欧元!芬兰正式启动量子旗舰项目
  • 【3分钟开服】幻兽帕鲁服务器一键部署保姆教程
  • PandaWallet :Web3.0世界的入口
  • 微软Azure-openAI 测试调用及说明
  • java 图书管理系统 spring boot项目
  • Ubuntu系统安装 Redis
  • 简单记录一下如何安装python以及pycharm(图文教程)(可供福建专升本理工类同学使用)
  • 浏览器内存泄漏排查指南
  • ClickHouse(22)ClickHouse集成HDFS表引擎详细解析
  • idea报错 :(java: 找不到符号)
  • 设计软件最重要的目标是可理解性?
  • 酒店|酒店管理小程序|基于微信小程序的酒店管理系统设计与实现(源码+数据库+文档)
  • C++ 数论相关题目,博弈论,SG函数,集合-Nim游戏
  • ​学者观察 | 区块链技术理论研究与实践观察——中央财经大学朱建明