题目描述
Given n non-negative integers representing the histogram’s bar height where the width of each bar is 1, find the area of largest rectangle in the histogram.
思路
用一个栈,每找到一个局部峰值时,触发while循环,向前遍历得最大值
代码实现
class Solution(object):
def largestRectangleArea(self, height):
"""
:type heights: List[int]
:rtype: int
"""
height.append(0)
index = [-1]
ans = 0
for i in range(len(height)):
while height[i] < height[index[-1]]:
h = height[index.pop()]
w = i-1-index[-1]
ans = max(ans, h*w)
index.append(i)
height.pop()
return ans