单调栈

单调栈

  • 单调栈:是一种容器,类似于大小堆,一维数组:
    • 单调递增栈:从栈低到栈顶是递增的,【记录的是已遍历更大的数,求的是右边第一个更小的数】,获取当前元素,左边大于的第一个数,右边小于的第一个数;
    • 单调递减栈:从栈底到栈顶是递减的,【记录的是已遍历更小的数,求的是右边更大的数】,因此当前元素能够获取,左边小于的第一个数,右边大于的第一个数;
    • 判断逻辑:
      • 大于栈顶,
      • 等于栈顶:关键点的细节,判断条件是否是需要满足严格单调关系
      • 小于栈顶,
  • 经典题型:
    • 每日温度:单调递减栈,其次,从数据层考察,两个数组,循环数组等;
    • 接雨水:严格单调递减的栈
      • 考察点:对于当前元素等于栈顶时,置换不知换对该位置的雨水容量不影响,但是影响以它为高的容积宽度【w = i - left - 1】,所以应该更新栈顶元素
    • 柱状图中的最大矩形:严格单调递增的栈,
      • 有一个迭代思想,由中间的栈顶求面积,然后逐步向下迭代,求最大值;
posted @ 2025-08-04 19:55  烟雨断桥  阅读(8)  评论(0)    收藏  举报