您的位置:首页 > 其它

LeetCode-84-Largest Rectangle in Histogram 经典题目,单调栈

2017-10-02 22:44 537 查看
class Solution(object):
def largestRectangleArea(self, heights):
"""
:type heights: List[int]
:rtype: int
"""
ans=0
heights.append(0)
stack=[]
stack.append((0,-1))#(value,position)
Len=len(heights)
for i in range(Len):
top=stack[-1]
if heights[i]>top[0]:
stack.append((heights[i],i))
elif heights[i]<top[0]:
while(heights[i]<stack[-1][0]):
ans=max((i-stack[-1][1])*stack[-1][0],ans)
p=stack[-1][1]
stack.pop()
stack.append((heights[i],p))
return ans
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: