直方图的最大面积问题

原创 2018年04月17日 16:55:47

(1)问题描述:
直方图中最大矩形面积,一个直方图是有许多矩形组成的,在给定的直方图中找出最大的矩形面积,
为了简化,假定所有矩形的宽为1。


(2)直方图最大面积的算法理解:

    1、将一个起伏的直方图分解成一个个小的递增的直方图,

    2、再计算每个递增直方图的最大面积

    3、遍历完成之后会得到一个递增的栈,栈的值所对应的直方图的高也是递增的

    3、那么用同样的思路计算出这个递增的直方图的最大面积。



代码实现:

public int largestRectangleArea(int[] array){
        ArrayStack stack = new ArrayStack(10);
        int max_area = 0;
        int top = 0;
        int area_with_top;

        int i = 0;
        int length = array.length;
        while(i<length){
            if (stack.isEmpty()||array[i]>=array[stack.peek()]){
                stack.push(i++);
            }else {
                top = stack.pop();
                area_with_top = array[top]*(stack.isEmpty()?i:(i-stack.peek()-1));
                max_area = Math.max(area_with_top,max_area);
            }
        }
        while(!stack.isEmpty()){
            top = stack.pop();
            area_with_top = array[top]*(stack.isEmpty()?i:(i-stack.peek()-1));
            max_area = Math.max(area_with_top,max_area);
        }
            return max_area;
    }
运行结果:


【算法】直方图中最大面积问题

问题描述给定一个直方图,求这个直方图中最大矩阵对应的面积是多少? 比如有个图如下 (对应的数组为:[2,1,5,6,2,3]) 那么对应的最大矩形的面积应该为 10: 问题分析这类题是很常见的一...
  • nisxiya
  • nisxiya
  • 2015-06-19 16:26:14
  • 1802

LeetCode_直方图最大面积(Largest Rectangle in Histogram)

一、题目 Given n non-negative integers representing the histogram’s bar height where the width of each ...
  • Two_Water
  • Two_Water
  • 2016-11-02 05:43:36
  • 2465

直方图中最大矩形面积

原文地址:http://www.geeksforgeeks.org/largest-rectangle-under-histogram/ 注意:本文并为对原文完整翻译,而是结合原文并根据本人理解写出...
  • Revivedsun
  • Revivedsun
  • 2016-09-03 00:49:35
  • 5437

求直方图中最大矩形面积(C语言实现)

一个直方图是由许多矩形组成,在给定的直方图中找出最大的矩形面积。同时,为了简化问题,假定所有矩形宽度都为1个单位。例如,下面的直方图中有6个矩形,高度分别是(6,7,8,4,5,3)。最大的矩形面积是...
  • serena_0916
  • serena_0916
  • 2016-12-07 20:20:50
  • 1184

算法-直方图中的最大矩形

直方图中最大矩形((Largest Rectangle in Histogram))问题:直方图是由排列在同一基线上的一系列矩形组成的多边形。为了简单起见,假设这些矩形的宽度相等但高度可能不同。例如,...
  • u012534831
  • u012534831
  • 2017-07-04 20:51:19
  • 1361

直方图中最大面积

Largest Rectangle in Histogram (直方图中最大面积) 【leetcode】 分类: leetcode面试算法题2013-09-20 21:36 131人阅读...
  • pi9nc
  • pi9nc
  • 2013-09-22 11:03:07
  • 3113

Leetcode编程练习二:求直方图中矩形最大面积

Leetcode编程练习二:求直方图中矩形最大面积
  • ether_crow
  • ether_crow
  • 2016-09-21 17:02:02
  • 583

编程求直方图中的最大矩形面积

求直方图中的最大矩形面积: 例如给定直方图{2,3,1,2,4,2} 则直方图中最大矩形面积为x=(3,6),|x|=3,y=2,max面积=6 思考:利用枚举法 /*当前位置往前进行枚举...
  • y999666
  • y999666
  • 2016-03-03 09:33:13
  • 849

直方图最大矩形面积--c/c++

有一个直方图,用一个整数数组表示,其中每列的宽度为1,求所给直方图包含的最大矩形面积。比如,对于直方图[2,7,9,4],它所包含的最大矩形的面积为14(即[7,9]包涵的7x2的矩形)。 给定...
  • qq_29090235
  • qq_29090235
  • 2017-07-08 22:43:11
  • 325

lintcode:直方图最大矩形覆盖

给出的n个非负整数表示每个直方图的高度,每个直方图的宽均为1,在直方图中找到最大的矩形面积。 以上直方图宽为1,高度为[2,1,5,6,2,3]。 最大矩形面积如图阴影部分所示,含有10单位 ...
  • jmu201521121014
  • jmu201521121014
  • 2016-07-28 15:30:34
  • 898
收藏助手
不良信息举报
您举报文章:直方图的最大面积问题
举报原因:
原因补充:

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