[LeetCode]84. Largest Rectangle in Histogram

原创 2017年01月03日 17:27:23

https://leetcode.com/problems/largest-rectangle-in-histogram/

找到柱状图之中的最大矩形面积


找出以heights[i]为最小长度的矩形面积可得结果。这个矩形的面积为heights[i] * i位置左右两侧第一个小于heights[i]的位置差(不将晓宇height[i]的这两个左右位置记入宽中,因此为i - j - 1)。如何找到左右两边小于heights[i]的位置呢?当前遍历到的比heights[i]小的位置就是右侧index,用stack保存一个升序序列当前栈顶就是左侧index。而heights[i]为当前栈pop出的元素。最后要用一个0把stack里面的所有元素全部pop出来,计算出以其为最小长度的矩形面积。

public class Solution {
    public int largestRectangleArea(int[] heights) {
        // 始终保持升序序列
        Stack<Integer> stack = new Stack();
        int res = 0;
        for (int i = 0; i <= heights.length; i++) {
            int height = i == heights.length ? 0 : heights[i];
            while (!stack.isEmpty() && height <= heights[stack.peek()]) {
                int h = heights[stack.pop()];
                int j = stack.isEmpty() ? -1 : stack.peek();
                res = Math.max(res, h * (i - j - 1));
            }
            stack.push(i);
        }
        return res;
    }
}


Leetcode刷题记—— 84. Largest Rectangle in Histogram(柱形图中最大矩形面积)

一、题目叙述: Given n non-negative integers representing the histogram's bar height where the width...
  • sunshine0_0
  • sunshine0_0
  • 2017年02月21日 18:05
  • 125

LeetCode | Largest Rectangle in Histogram(直方图围城的最大矩形面积)

Given n non-negative integers representing the histogram's bar height where the width of each bar is...
  • a45872055555
  • a45872055555
  • 2014年08月12日 20:05
  • 750

寻找直方图中的最大矩形 Largest Rectangle in Histogram

题目:Given n non-negative integers representing the histogram's bar height where the width of each ba...
  • luckyjoy521
  • luckyjoy521
  • 2014年02月20日 22:18
  • 1030

84 Largest Rectangle in Histogram(直方图中最大的矩形)

Given n non-negative integers representing the histogram’s bar height where the width of each bar is...
  • NichChen
  • NichChen
  • 2017年07月26日 17:32
  • 126

【直方图的最大面积】Largest Rectangle in Histogram

Given n non-negative integers representing the histogram's bar height where the width of each bar is...
  • wjz748305545
  • wjz748305545
  • 2014年04月05日 17:30
  • 524

Largest Rectangle in Histogram 一排矩形中的最大的面积

Largest Rectangle in Histogram Given n non-negative integers representing the histogram's b...
  • u012605629
  • u012605629
  • 2015年09月23日 15:44
  • 252

Largest Rectangle in a Histogram(动态规划找最大矩形面积)

Largest Rectangle in a Histogram Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/3276...
  • baidu_23955875
  • baidu_23955875
  • 2015年06月06日 20:14
  • 222

Largest Rectangle in Histogram(在柱形图中画出最大矩形)

Given n non-negative integers representing the histogram's bar height where the width of each bar is...
  • huzhigenlaohu
  • huzhigenlaohu
  • 2016年08月18日 11:20
  • 242

leetCode 85.Maximal Rectangle (最大矩阵) 解题思路和方法

Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing all ones and...
  • xygy8860
  • xygy8860
  • 2015年07月22日 13:43
  • 990

leetCode 84.Largest Rectangle in Histogram (最大矩形直方图) 解题思路和方法

Given n non-negative integers representing the histogram's bar height where the width of each bar is...
  • xygy8860
  • xygy8860
  • 2015年07月22日 13:36
  • 771
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[LeetCode]84. Largest Rectangle in Histogram
举报原因:
原因补充:

(最多只允许输入30个字)