题目
输入: [2,1,5,6,2,3]
输出: 10
思路
单调栈
代码
def largestRectangleArea(heights):
max_ans = 0
heights = [0]+heights +[0]
length = len(heights)
stack = [0]
for i in range(1,length):
while heights[i]<heights[stack[-1]]:
h = heights[stack.pop()]
width = i - stack[-1] -1
max_ans = max(max_ans,h*width)
stack.append(i)
return max_ans