leetcode84——柱状图中的最大矩形
用单调栈来解决。栈里面的元素都是单调不递减的,当走到当前元素时,如果当前元素比前一个元素大,那么前一个元素的最大面积不能确定,如果当前值比前一个值小,那么前一个值的最大面积就被确定,也就是前一个元素不能再向右继续延伸了。这个时候矩形的高是确定的,所以要求的就是宽,那个矩形的最右边肯定是当前下标,然后最左边界就是栈里面弹出前一个元素后的再前一个值,通过peek来获得下标,因为我是单调栈,所以只要在栈里面的,肯定能确保前一个元素小于后面的元素,然后每次遍历都将新的下标放入栈中
代码如下: