首页 > 其他分享 >单调栈与单调队列

单调栈与单调队列

时间:2022-12-09 16:34:41浏览次数:32  
标签:队列 top back int que 单调

单调栈是栈中数据具有单调性的一种数据结构,用来求以某个值为最值的最大区间等问题

模板(c++):

  int n,in; 
  int stack[1010];
  int top;
  func(){
          for(int i=0;i<n;i++){
                scanf("%d",&in);
                while(top>0&&in>=stack[top])top--;//>=就是从栈底到栈顶单增
                 /*加入自己需要的功能*/
                stack[top++]=in;
            }
    
  }

单调队列

也许是单调栈puls?
从队首到队尾的数据是单调的,解决区间内最值问题等问题
模板(c++):

#include<iostream>
#include<deque>
using namespace std;
deque<int>que;//该模板的que只储存下标,要根据需要修改
int n,m;
int in[2000005];
int main(){
	scanf("%d %d",&n,&m);
	for(int i=1;i<=n;i++){
		scanf("%d",&in[i]);
	}
	for (int j = 1; j <= m; j++) {
			while (que.size() > 0 && que.front() <= j - k) {//更新区间
				que.pop_front();
			}
			while (que.size() > 0 && in[i][que.back()] < in[i][j]) {//控制队列的单调性
				que.pop_back();
			}
			que.push_back(j);//将当前下标加入队列
			/*加入功能*/
	return 0;
}

我觉得我大学学习的一个误区可能就是太把自己当回事了
其实那些深奥的知识在学习的时候没有必要要研究透原理,只要会用就行,先跟答案抄两遍,会写就行。
原理什么的,等会写以后再悟会简单很多。

2022.12.5 in HHUC

标签:队列,top,back,int,que,单调
From: https://www.cnblogs.com/bvwvd/p/16969290.html

相关文章

  • 栈和队列--生成窗口最大值数组
    题目:有一个整型数组arr和一个大小为w的窗口从数组最左边滑到最右边,窗口每次向右边滑一个位置例如:数组为【4,3,5,4,3,3,6,7】,窗口大小为三时如果数组长度为n,窗口大......
  • Kafka技术专题之「性能调优篇」消息队列服务端出现内存溢出OOM以及相关性能调优实战分
    内存问题本篇文章介绍Kafka处理大文件出现内存溢出java.lang.OutOfMemoryError:Directbuffermemory,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮......
  • python初步了解队列
    python初步了解队列队列是一种先入先出的数据结构单纯用列表来实现队列运用pop()函数,进行出队效率很低,因为在列表开头删除元素需要将其他元素往前移动一位.所以一般用......
  • SpringCloud之RabbitMQ消息队列原理及配置
    本篇章讲解RabbitMQ的用途、原理以及配置,RabbitMQ的安装请查看SpringCloud之RabbitMQ安装一、MQ用途1、同步变异步消息场景:用户下单完成后,发送邮件和短信通知。......
  • 消息队列流程
     ......
  • 消息队列概述
    1.两个概念1.1消息代理(messagebroker)1.2目的地(destination)1.2.1队列(queue):点对点消息通信(point-to-point)消息只有唯一的发送者发送和接收者接收,但不是说只能有一......
  • RabbitMQ 实现延时队列
    1. 消息的TTL(TimeToLive)消息的TTL就是消息的存活时间。RabbitMQ可以对队列和消息分别设置TTL。对队列设置就是队列没有消费者连着的保留时间,......
  • 数据结构:单链队列--队列的链式存储结构
    //测试<divstyle="margin:0px;padding:0px;font-family:punctuation,微软雅黑,Tohoma;font-size:14px;line-height:22px;">/*********************************......
  • 八. 栈和单调栈
    普通栈:​​剑指Offer09.用两个栈实现队列​​classCQueue:def__init__(self):self.A,self.B=[],[]defappendTail(self,value:int)->None:......
  • java阻塞队列
    1.defBlockingQueue阻塞队列是mq的底层。BlockingQueue阻塞队列,排队拥堵,首先它是一个队列,而一个阻塞队列在数据结构中所起的作用大致如下图所示:2.实现类BlockingQueue阻......