1. 双端队列

普通队列是限制仅在队尾进行插入,在队头进行删除操作的线性表,队列的插入叫做入队列,队列的删除叫做出队列。

而双端队列则是放开了这个限制,在队头和队尾两端都可以进行入队和出队操作的队列。

这么细看,其实对于队头或者队尾端,相当于是一个栈,后进的先出。

双端队列看上去这么的像栈和队列的结合体。

而有些时候,双端队列中还有受限的双端队列:一个是输出受限的双端队列,另一个是输入受限的双端队列。

2. 输出受限的双端队列

输出受限的双端队列是:允许在一端进行入队和出队,但在另一端只允许入队的双端队列。

3. 输入受限的双端队列

输入受限的双端队列是:允许在一段进行入队和出队,但在另一端只允许出队的双端队列。

4. 单调队列

输出受限的双端队列里,有一种情况,那就是队列里的各元素之间的关系具有单调性,这叫单调队列。

单调队列,顾名思义,所有队列里的元素都是按递增(递减)的顺序队列,这个队列的头是最小(最大)的元素。

双端队列中的单调队列相关推荐

  1. Window_纪中_1326_单调队列

    题目大意 给你一个度为N的数组,一个长为K的滑动的窗体从最左移至最右端,你只能见到窗口的K个数,每次窗体向右移动一位,如下表:   你的任务是找出窗口在各位置时的max value,min value ...

  2. python queue 查询是否在队列中_Python queue队列

    Queue Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递 基本FIFO队列 clas ...

  3. (补)算法训练Day13 | LeetCode150. 逆波兰表达式求值(栈应用);LeetCode239. 滑动窗口最大值(单调队列);LeetCode347. 前K个高频元素(小顶堆,优先级队列)

    目录 LeetCode150. 逆波兰表达式求值 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考 LeetCode239. 滑动窗口最大值 1. 思路 2. 代码实现 3. 复杂度分析 4. ...

  4. linux进程间通信:消息队列实现双端通信

    双端通信描述 利用消息队列针对发送接受消息的类型唯一性 进行多个客户端之间消息传递,而不需要server端进行消息转发. 同时消息队列的读阻塞和写阻塞特性(消息队列中已经写入数据,如果再不读出来,则无 ...

  5. 算法笔记--单调队列优化dp

    单调队列:队列中元素单调递增或递减,可以用双端队列实现(deque),队列的前面和后面都可以入队出队. 单调队列优化dp: 问题引入: dp[i] = min( a[j] ) ,i-m < j ...

  6. Leetcode1696. 跳跃游戏 VI[C++题解]:dp和单调队列求滑动窗口最值

    文章目录 题目分析 题目链接 单调队列板子链接 Deque知识补充 题目分析 题目重述:给定一个数组(有正数有负数)和一个步长k,从下标0处开始往前跳,每次最多往前跳k步.求跳到最后一个位置,得分之和 ...

  7. 算法竞赛入门与进阶 (二)单调队列、单调栈

    栈(stack)和队列( queue ) 1.栈的定义:栈是限定仅在表头进行插入和删除操作的线性表(先进后出) 2.队列的定义:队列是一种特殊的线性表,特殊之处在于 它只允许在表的前端(front)进 ...

  8. CodeForces - 91B Queue(单调队列+二分)

    题目链接:点击查看 题目大意:给出一个队列,队列中按照顺序有n只海豹在排队,每一只海豹都有一个数值表示年龄,如果在某只前面有年龄比他小的海豹,他会变得很不开心,不开心的值就是在比他年龄小的海豹中选择距 ...

  9. 【C++】单调队列 详解

    今天我们来讲一下单调队列与栈. 这两种数据结构虽然没有在c++的stl中有直接的实现,但是在做题过程中,很容易有单调队列(栈)的使用,尤其是在一些比较难的题目中. 目录 单调队列 1.1 单调队列介绍 ...

最新文章

  1. 一文读懂生物医学领域的传感器
  2. 19、Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
  3. oracle存储返回sql查询,如何做才能使record类型和table类型存储查询语句返回的多条记录?...
  4. nginx修改默认端口
  5. tomcat7下配置session复制和nginx做负载均衡
  6. openSSH离线升级(6.6->7.9),解决Linux安全漏洞(CVE-2018-15473)
  7. getLong not implemented for class oracle.jdbc.driver.T4CRowidAccessor
  8. java笔记:第6章 面向对象程序设计
  9. jade入门与初步使用
  10. ubuntu 下星际译王词典下载地址
  11. 无线AP,无线中继器与无线路由
  12. 【读书笔记】《乔布斯的魔力演讲》卡迈恩•加洛
  13. (短除法)求两个给定正整数的最大公约数和最小公倍数。
  14. 康宁发布第五代大猩猩玻璃 坚韧度更强更耐摔
  15. web前端期末大作业 html+css家乡旅游主题网页设计 湖北武汉家乡介绍网页设计实例
  16. 全新雅思模拟考试开启全国高校预热活动
  17. (1)从1开始写一个操作系统
  18. speedoffice(Excel)如何设置纸张大小
  19. 打开netlogo model 出现failed to launch JVM
  20. Spark任务执行流程

热门文章

  1. WinNT Win2K下实现进程的完全隐藏
  2. 每天作死一道题——1、2扑克牌魔术(趣题学算法)
  3. Windows10分盘管理
  4. Unity3D优化技巧系列二
  5. mysql的字符集修改_修改MySQL字符集
  6. Android APP适配全面屏手机的技术要点
  7. Navicat导入SqlServer备份的bak文件(超详细)
  8. android surfaceview 大小,Android设置SurfaceView任意大小、任意位置、保持预览宽高比与屏...
  9. Android Studio 模拟器无法访问互联网解决方法
  10. Django学习4:URL传参