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

单调队列 (1) - 详解

一,单调队列是什么(介绍)

数据结构

1.单调是数据(目前为线性表)排列的特征 ———  

每下一位的数   都比   这一位   大(或小)

好吧,再说简单一点:递增(或递减)

2.队列是这些特征存在的依托    (结构)队列都知道吧

3.还有:(其余分类)

单调队列不一定是严格递增或递减的

可以为严格单调队列非严格单调队列  (就是有没有数据值相等的情况)

e.g. 

1  2  2  3  3   是非严格单调队列    

1   2   3   4    是严格单调递增队列 

(这些都是根据场景使用的)

二,单调队列的构造

1.单调队列是队列

普通的队列内部的数据值都是不规则的

而单调队列:数据排列递增或递减(这里记作①)

2.从普通队列为空,插入时改变操作,每次插入都要保证①

那就要在新加入数据时,改变不符合的数据

就有两种情况  ——  改变新数据    或   改变原来的数据

(1).不符合就不加新数据(只操作一次)

此处逻辑如下:

//数组模拟q  l r //严格单调递增
//新数据为x
if(x<=q[r]) break;//加不了
else q[++r]=x;

(2).不符合就剔除原来的数据(可能为多次,用while或for+if)

此处逻辑如下:

while(q[r]>=x && l

(注意判断边界)

三,单调队列可以来干什么(基本应用,后续再讲其余)

在化学中,物质的性质决定它的用途

那么,在编程中,一种特殊的数据结构(此处指单调队列)的构造方法(如上)与特征就可以决定它的应用

构造后基本特征:

它能找到一组数据中最大值或最小值

可以抽象为  函数f(s,t)  ——可以找到从位置s到位置t数据中最大值或最小值

并且可以连续性递推性质,即可以由 f(s,t)与值a[t+1]推出f(s,t+1)

(而且操作简便,不怎么耗时间)

总结:(基本应用)

单调队列可以解决 线性表 连续性 递推区间 的最大/小值问题

http://www.zskr.cn/news/18619.html

相关文章:

  • 2025 年 密度 / 净化 / 零醛添加 / 装修 / 生态板 / 指接板板材厂家推荐:纯品梅花深耕高端定制,打造健康家居板材优质选择
  • PHP 与 HTML 混写基础
  • 2025 年隧道/车丝/打孔/矿用/R780/钢花钢管厂家推荐榜:精准匹配施工需求,优选可靠供应商
  • marimo python 响应式notebook 框架
  • 2025天文台圆顶加工厂家最新推荐榜:专业工艺与品质保障之选
  • 2025 电缆绝缘材料生产厂家最新推荐榜单:技术实力型企业揭晓,选购指南同步发布
  • Linux 终端查看最消耗 CPU 内存的进程
  • 直播app源码,如何提升用户登录验证的安全性? - 云豹科技
  • 下载模板
  • Redis Stack搭建
  • 重磅更新:Claude Code 现在支持插件啦!!
  • 实用指南:FPGA学习笔记——图像处理之对比度调节(直方图均衡化)
  • 2025 最新推荐!大连深海原种海参源头厂家权威榜:聚焦全产业链优质供应商及选购指南青海淡干/青海围堰/青海圈养/青海吊笼/青海网箱/青海大棚海参厂家推荐
  • 详细介绍:Hadess入门到实战(3) - 如何管理Npm制品
  • Rokid JSAR开发:开发实现小游戏语音控制
  • 金蝶店铺版v5.0.7安装包及店铺版v5.0.7破解补丁
  • 基本骨架
  • CNVD 实战笔记:通过 Java 代码审计挖掘 SSRF 漏洞
  • 关系数据库MySQL的常用基础命令详解实战 - 指南
  • 金蝶KIS账套编辑器v3.0/金蝶KIS降级工具
  • 深度解析社区运营中的技巧实践:从材料驱动到智能优化的全面探索
  • 【项目-1】如何根据霍尔信号与反电动势波形关系准确推导出绕组通电顺序?
  • 7-Zip下载安装使用教程 官方网站怎么下载?7zip和bandizip选哪个?选哪个?如何选择?
  • Paytium WordPress插件存储型XSS漏洞深度分析
  • 金蝶KIS标准版v9.1_Patch/金蝶标准版破解
  • 2025.10.11——1绿
  • 专题:2025年AI Agent智能体行业洞察报告|附110+份报告PDF、资料仪表盘汇总下载
  • Intersection Observer API 完全指南:从语法到 3 个性能实战 - 教程
  • VMware ESXi 9.0.1.0 macOS Unlocker OEM BIOS 2.7 AQC 网卡特殊定制版
  • SignTool 使用 SafeNet eToken 硬证书进行代码签名