柱状图中最大的矩形

题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/largest-rectangle-in-histogram

给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。

求在该柱状图中,能够勾勒出来的矩形的最大面积。

image.png

以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。

image.png

图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。

示例:

输入: [2,1,5,6,2,3]
输出: 10

暴力解法(执行用时 :282 ms, 在所有 java 提交中击败了43.25%的用户。内存消耗 :39 MB, 在所有 java 提交中击败了98.48%的用户):

class Solution {
    public int largestRectangleArea(int[] heights) {
        int max = 0;
        Map map = new HashMap<>();
        for (int i=0;i= height){
                tmp++;
            }else{
                //清空tmp,比较最大值
                max = Math.max(max,tmp);
                tmp = 0;
            }
            left++;
        }
        max = Math.max(max,tmp);
        return max*height;
    }
}

你可能感兴趣的:(柱状图中最大的矩形)