其他分享
首页 > 其他分享> > Leetcode: 84. Largest Rectangle in Histogram

Leetcode: 84. Largest Rectangle in Histogram

作者:互联网

Description

Given an array of integers heights representing the histogram's bar height where the width of each bar is 1, return the area of the largest rectangle in the histogram.

Example

Input: heights = [2,1,5,6,2,3]
Output: 10

Tips

1 <= heights.length <= 10^5
0 <= heights[i] <= 10^4

code

class Solution(object):
    def largestRectangleArea(self, heights):
        """
        :type heights: List[int]
        :rtype: int
        """
        ans = 0
        stack = []
        heights = [0] + heights + [0]
        for i in range(len(heights)):
            while(stack and heights[stack[-1]] > heights[i]):
                j = stack.pop()
                ans = max(ans, (i-stack[-1]-1)*heights[j])
            stack.append(i)
        return ans

总结

1. LC 1856 、1793、907  也可以套用该模版求解出
2.  monotonick stack 用于求解 next great element 比较直观, but next great element 也表示有一个对应的区间!! 本题就是该区间信息进行求解

标签:return,求解,int,heights,Leetcode,ans,Histogram,stack,Rectangle
来源: https://www.cnblogs.com/tmortred/p/15799366.html