对数组中每一个元素寻找左边/右边第一个比他小/大的元素
左小:
从左至右每一个元素:
while当前元素比栈顶小,pop,直到找到栈顶比它小的,即答案,然后把该元素压入栈
左大:上述反过来
右小:
从右至左每一个元素:重复左小
右大:
显然
直方图最大矩形面积
栈存放下标
while当前元素i比栈顶大时,pop,对于栈顶元素来说,右边界是i,左边界是新栈顶下标
新栈顶不存在时左边界就是0
注意点是最后一个元素要继续while判断
对数组中每一个元素寻找左边/右边第一个比他小/大的元素
左小:
从左至右每一个元素:
while当前元素比栈顶小,pop,直到找到栈顶比它小的,即答案,然后把该元素压入栈
左大:上述反过来
右小:
从右至左每一个元素:重复左小
右大:
显然
直方图最大矩形面积
栈存放下标
while当前元素i比栈顶大时,pop,对于栈顶元素来说,右边界是i,左边界是新栈顶下标
新栈顶不存在时左边界就是0
注意点是最后一个元素要继续while判断