LeetCode解题笔记 19 —— 84. 柱状图中最大的矩形

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m940034240/article/details/89330720

题目

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

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

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

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

示例:

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

解法

class Solution {
    public int largestRectangleArea(int[] heights) {
        int max = 0;
        for(int i = 0; i < heights.length; i++){
            int h = Integer.MAX_VALUE;
            for(int j = i;j < heights.length; j++){
                if(heights[j] < h){
                    h = heights[j];
                }
                int s = h * (j - i +1);
                if(s > max){
                    max = s;
                }
            }
        }
        return max;
    }
}

猜你喜欢

转载自blog.csdn.net/m940034240/article/details/89330720