单调栈,顾名思义就是栈里面都是单调的。用途是啥?
用途是用来找下一个最大或者最小,前一个最大,最小。
比如经典题,找下一个最大的数。
{4, 3, 2, 1, 9}
在遇到就之前,栈里面的元素是递减的。
当遇到9以后,1比9小。
于是1的下一个最的就是9
同时出栈。
然后下一个数是2, 比9小。
然后2的下一个最大就是9.
知道栈空或者有个比9大的数在栈里。
然后把9push进去,维护一个递减的栈。
https://leetcode.com/problems/next-greater-element-i/