单调栈的性质

在这里插入图片描述
单调栈的用途:用来寻找左边第一个小于当前值的元素
单 调 栈 的 性 质 : 若 栈 中 有 第 i 个 和 第 j 个 元 素 , 且 j > i , 则 在 ( i , j ) 范 围 内 的 任 何 数 字 k 必 有 a [ i ] < a [ j ] < a [ k ] 单调栈的性质:若栈中有第i个和第j个元素,且j>i,则在(i,j)范围内的任何数字k必有a[i]<a[j]<a[k] ijj>i(i,j)ka[i]<a[j]<a[k]
利用这个性质我们就可以寻找左边的第一个元素了。
首 先 看 一 看 栈 顶 , 当 栈 顶 的 值 一 直 小 于 等 于 当 前 元 素 的 时 候 , 就 p o p 首先看一看栈顶,当栈顶的值一直小于等于当前元素的时候, 就pop pop
若 停 下 了 , 我 们 假 设 当 前 元 素 的 值 为 v , 则 有 v < t o p . v a l , 利 用 上 面 的 单 调 栈 的 性 质 , 可 以 很 容 易 的 得 出 它 最 左 边 应 该 是 t o p . p o s + 1 若停下了,我们假设当前元素的值为v,则有v<top.val,利用上面的单调栈的性质,可以很容易的得出它最左边应该是top.pos+1 v,v<top.val,top.pos+1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值