largest-rectangle-in-histogram

Posted strive-19970713

tags:

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

/**
* 给出n个数字,代表直方图的条高,直方图每一条的宽度为1,请计算直方图中最大矩形的面积
*
* 上图是每条宽度为1, 高度 =[2,1,5,6,2,3].的直方图
*
* 图中的阴影部分是该直方图中面积最大的矩形,面积为10个单位
* 例如:
* 给出的高度 =[2,1,5,6,2,3],
* 返回10.
*/

/**
 * 给出n个数字,代表直方图的条高,直方图每一条的宽度为1,请计算直方图中最大矩形的面积
 *
 * 上图是每条宽度为1, 高度 =[2,1,5,6,2,3].的直方图
 *
 * 图中的阴影部分是该直方图中面积最大的矩形,面积为10个单位
 * 例如:
 * 给出的高度 =[2,1,5,6,2,3],
 * 返回10.
 */

public class Main59 

    public static void main(String[] args) 
        int[] height = 0,9;
        System.out.println(Main59.largestRectangleArea(height));
    

    public static int largestRectangleArea(int[] height) 

        if (height.length <= 0) 
            return 0;
        
        int maxArea = 0;

        for (int i=0;i<height.length;i++) 
            int minLen = height[i];
//            maxArea = height[i]*1;
            for (int j=i;j<height.length;j++) 
                int area = 0;
                if (minLen > height[j]) 
                    area = height[j] * (j-i+1);
                    minLen = height[j];
                else
                    area = minLen* (j-i+1);
                
                if (area > maxArea) 
                    maxArea = area;
                
            
        
        return maxArea;
    

  

以上是关于largest-rectangle-in-histogram的主要内容,如果未能解决你的问题,请参考以下文章