feng xiaohan

单调栈

已知单调栈使用场景:

寻找距离最近的最大/小元素

这种场景一般是从数组的尾部开始遍历,然后不停地更新栈中的元素,使得栈中的元素呈单调递减/增的序列。

寻找最长元素段

与普通单调栈场景不同,需要预先处理一段数据放入栈中,然后再从数组的尾部开始遍历,符合则将栈中数据弹出,比较下一个。

  • 一般栈中存储的是数组索引下标;
  • 遍历数组匹配栈顶元素时,一般只会做出栈操作,不会再入栈;