美文网首页
直方图的最大面积

直方图的最大面积

作者: 程序员小白成长记 | 来源:发表于2020-08-30 04:09 被阅读0次
1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png 11.png 12.png
public class HistogramMaxArea {
    public int largestRectangleArea(int[] heights) {
        if (heights == null || heights.length == 0) {
            return 0;
        }
        int len = heights.length;
        Stack<Integer> stack = new Stack<>();
        int maxArea = 0;
        for (int i = 0; i < len; i++) {
            // 栈不为空并且当前遍历元素小于栈顶元素
            while (!stack.isEmpty() && heights[stack.peek()] > heights[i]) {
                int high = heights[stack.peek()];
                // 将以栈顶元素为高度的元素全都出栈,结果为到达左边界
                while (!stack.isEmpty() && high == heights[stack.peek()]) {
                    stack.pop();
                }
                int width = 0;
                if (stack.isEmpty()) {
                    width = i;
                } else {
                    width = i - stack.peek() - 1;
                }
                maxArea = Math.max(maxArea, high * width);
            }
            stack.push(i);
        }

        // 已遍历完数组
        while (!stack.isEmpty()) {
            int high = heights[stack.peek()];
            while (!stack.isEmpty() && high == heights[stack.peek()]) {
                stack.pop();
            }
            int width = 0;
            if (stack.isEmpty()) {
                width = len;
            } else {
                width = len - stack.peek() - 1;
            }
            maxArea = Math.max(maxArea, width * high);
        }
        return maxArea;
    }
}

相关文章

  • 直方图最大面积矩形&01矩阵中最大的全0(1)矩阵

    求直方图中最大矩形的面积,用这个思路可以进一步解决求01矩阵中最大的全0或全1矩阵 直方图中最大矩形的面积 问题描...

  • 直方图的最大面积

  • LeetCode 84 [Largest Rectangle i

    原题 给出的n个非负整数表示每个直方图的高度,每个直方图的宽均为1,在直方图中找到最大的矩形面积。 给出 heig...

  • 单调队列&单调栈

    就是一些很神奇的数据结构 A:最大矩形 题目: 给一个直方图,求直方图中的最大矩形的面积。例如,下面这个图片中直方...

  • [LeetCode] Largest Rectangle in

    题目描述: 解题思路:本题要求我们求出直方图中最大的矩形面积。仔细观察分析可以知道,关键是找到直方图中最大矩形的长...

  • 直方图最大矩形(Array Stack)

    给了一个数组,数组值代表高度,这构成了一个直方图,求直方图中最大矩形的面积 [leetcode84]https:/...

  • SPSS绘制统计图

    1 直方图与茎叶图 直方图 直方图用于表示连续性变量的频数分布。在直方图中以各矩形(直条)的面积表示各组段的频数(...

  • 求最大子矩阵的大小

    这个题考察的是动态规划,并且要了解LeetCode第84题,要清楚直方图的面积怎么计算。 85.最大矩阵(Leet...

  • matplotlib可视化篇bar()--直方图(1)

    在表示逐年利润或者业务进展时,我们往往更喜欢直方图,相比折线图,直方图更能直观体现数据量(以直方图面积体现)以及增...

  • matplotlib绘制相关2D图片

    直方图 直方图实际上是用长方形的面积表示频数 参数只有一个 hist()的参数: bins 条数 normed 归...

网友评论

      本文标题:直方图的最大面积

      本文链接:https://www.haomeiwen.com/subject/ttussktx.html