leetcode 84. Largest Rectangle in Histogram

Posted zhangwj0101

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 84. Largest Rectangle in Histogram相关的知识,希望对你有一定的参考价值。

Question

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.

Above is a histogram where width of each bar is 1, given height = [2,1,5,6,2,3].

The largest rectangle is shown in the shaded area, which has area = 10 unit.

For example,
Given heights = [2,1,5,6,2,3],
return 10.

Code

 public int largestRectangleArea(int[] height) 
        if (height == null || height.length == 0) 
            return 0;
        

        Stack<Integer> stack = new Stack<Integer>();
        int max = 0;
        for (int i = 0; i <= height.length; i++) 
            int curt = (i == height.length) ? -1 : height[i];
            while (!stack.isEmpty() && curt <= height[stack.peek()]) 
                int h = height[stack.pop()];
                int w = stack.isEmpty() ? i : i - stack.peek() - 1;
                max = Math.max(max, h * w);
            
            stack.push(i);
        

        return max;

    

参考文章

以上是关于leetcode 84. Largest Rectangle in Histogram的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 84. Largest Rectangle in Histogram

Leetcode 84: Largest Rectangle in Histogram

LeetCode-84-Largest Rectangle in Histogram

leetcode 84 Largest Rectangle in Histogram ----- java

LeetCode OJ 84. Largest Rectangle in Histogram

[LeetCode] 84. Largest Rectangle in Histogram Java