美文网首页
1.单调栈

1.单调栈

作者: JarvisTH | 来源:发表于2020-09-06 20:37 被阅读0次

    一、单调栈定义

    单调栈(monotone-stack)是指栈内元素(栈底到栈顶)都是(严格)单调递增或者单调递减的。

    如果有新的元素入栈,栈调整过程中 ,会将所有破坏单调性的栈顶元素出栈,并且出栈的元素不会再次入栈 。由于每个元素只有一次入栈和出栈的操作,所以 单调栈的维护时间复杂度是O(n)

    二、单调栈性质

    1. 单调栈里的元素具有单调性。
    2. 递增(减)栈中可以找到元素左右两侧比自身小(大)的第一个元素。

    主要使用第二条性质,该性质主要体现在栈调整过程中,下面以递增栈为例(假设所有元素都是唯一),当新元素入栈。

    • 对于出栈元素来说:找到右侧第一个比自身小的元素。
    • 对于新元素来说:等待所有破坏递增顺序的元素出栈后,找到左侧第一个比自身小的元素。

    三、题目

    739. 每日温度(中等)
    496. 下一个更大元素 I(简单)
    316. 去除重复字母(困难)
    901. 股票价格跨度(中等)
    402. 移掉K位数字
    581. 最短无序连续子数组

    相关文章

      网友评论

          本文标题:1.单调栈

          本文链接:https://www.haomeiwen.com/subject/tuacektx.html