首页 > 其他分享 >关于单调栈

关于单调栈

时间:2023-06-17 22:33:20浏览次数:43  
标签:... 思想 元素 st Part 关于 单调

关于单调栈

目录

Part 1 概述

单调栈是一种其中元素具有单调性的线性结构。

由于其栈的特性,这种结构可以用来处理左边\右边比它小\大的数。

实际上,作者认为,遇到题目中元素:

  • “限制”它的左、右且被其左、右“限制”的
  • 限制具有可比较、可累加的性质时
  • 不满足单调时前面元素无效

应该考虑能否使用单调栈进行优化。

单调栈的思想十分巧妙,我们待会在p3中探讨。

Part 2 实现

单调栈没有特别固定的实现方式,但是基本结构是:

stack<int> st;
for(){
	int x;
	//获取当前进栈元素,例如cin>>x;
	if(x满足某些特征例如x>st.top()...){//如果满足单调性 
		st.push(x);
		//...
	} 
	
	while(!st.empty()&&x不满足上面特征例如x<=st.top()...){//如果不满足单调性,维护 
		st.pop();
		//...
	}
	//...
}

Part 3 思想

作者概括,该算法思想是:"抛弃无用,合并相同"

蓝皮书说:

借助单调性处理问题的思想在于即使排除不可能的选项,保持策略集合的高度有效性和秩序性。

例一 P5788 [模版]单调栈

例二 P4147 玉蟾宫

标签:...,思想,元素,st,Part,关于,单调
From: https://www.cnblogs.com/haozexu/p/17488389.html

相关文章

  • 痞子衡嵌入式:主流QuadSPI NOR Flash厂商关于QE位与IO功能复用关联设计
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家讲的是几家主流QuadSPINORFlash厂商关于QE位与IO功能复用关联设计。痞子衡之前写过一篇文章《串行NORFlash下载/启动常见影响因素之QEbit》,这篇文章介绍了几家主流厂商关于QEbit在Flash内部寄存器位置以......
  • AMBA2 关于APB
    参考https://zhuanlan.zhihu.com/p/419750074https://zhuanlan.zhihu.com/p/623829190注:波形图片来自于AMBA2APBProtocolSPEC.1.APB的用处APB不支持流水线设计,不支持突发传输。APB和AHB一样,有数据总线和地址总线,读写使用PWRITE和HWRITE控制,不能同时读写数据。......
  • 算法学习day60单调栈part03-84
    packageLeetCode.stackpart03;/***84.柱状图中最大的矩形**/publicclassLargestRectangleHistogram_84{publicintlargestRectangleArea(int[]heights){intlength=heights.length;int[]minLeftIndex=newint[length];int......
  • 算法学习day58单调栈part01-739、496
    packageLeetCode.stackpart01;importjava.util.Deque;importjava.util.LinkedList;/***739.每日温度*给定一个整数数组temperatures,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。*如果气温在这之后都不会升高,请......
  • 算法学习day59单调栈part02-503、42
    packageLeetCode.stackpart02;importjava.util.Arrays;importjava.util.Stack;publicclassNextGreaterElementII_503{publicint[]nextGreaterElements(int[]nums){//边界判断if(nums==null||nums.length<=1){return......
  • 关于Cookie Session 和Token,以及应用场景
    关于Cookie和Session(面试经常问)共同之处:cookie和session都是用来跟踪浏览器用户身份的会话方式。关于会话在日常生活中,从拨通电话到挂断电话之间的一连串的你问我答的过程就是一个会话。Web应用中的会话过程类似于生活中的打电话过程,它指的是一个客户端(浏览器)与Web服务器之间连......
  • 关于js单线程的问题
    为什么说js是单线程?为了搞清楚这个问题,我们需要先了解这几个问题:什么是线程?什么是进程?他们之间的关系?什么是任务队列(EventQueue),任务分类(宏任务、微任务)?什么是事件循环?为什么说js是单线程?为什么js要是单线程?接下来我们一起来看一下:什么是线程?什么是进程?他......
  • 关于vue2路由跳转问题记录
    1.vue路由间跳转和新开窗口的方式(query,params)路由间跳转配置:query方式:参数会在url中显示this.$router.push({path:'路由地址',query:{msg:'helloworld'}})params方式:传参数据不会在导航栏中显示,需要配合路由的name属性使用。this.$......
  • 关于安规标准中的过电压等级
    参照IEC(国际电工委员会)的标准:I级别是低压低能量级别,并带保护装置,一般指电子设备的内部电压;II级是低压高能量级别,从主供电电路分支出来的,家里照明电路220V电压属于此类;III级是指高压高能量级别,指固定安装的主供电电路,一般指380V三相电压 过电压定义:用数字表示的瞬态过电压条......
  • 关于DVWA靶场高难度命令执行的代码审计
    需要的环境:dvwa使用的工具:PHP手册high难度源代码:<?phpif(isset($_POST['Submit'])){//Getinput$target=trim($_REQUEST['ip']);//Setblacklist$substitutions=array('&'=>'',......