zoukankan      html  css  js  c++  java
  • 求直方图围成的最大矩形面积

    有一个直方图,用一个整数数组表示,其中每列的宽度为1,求所给直方图包含的最大矩形面积。比如,对于直方图[2,7,9,4],它所包含的最大矩形的面积为14(即[7,9]包涵的7x2的矩形)。

    给定一个直方图A及它的总宽度n,请返回最大矩形面积。保证直方图宽度小于等于500。保证结果在int范围内。

     

    比如上面的数组{2,1,5,6,2,3},其最大矩形面积如下所示

                 

    可以看出其面积为10。

    代码如下

     public static int max_Area(int[] height, int n) {
                                          int res = 0;  
                                   
                                   for (int i = 0; i < n; i ++)  
                                   {  
                                       int iwidth = 1;  
                                       // 向后寻找  
                                       for (int back = i - 1; back >= 0; back --)  
                                       {  
                                           if (height[i] > height[back])
                                               break;  
                                           else   
                                               iwidth ++;  
                                       }  
                                       // 向前寻找  
                                       for (int front = i + 1; front < n; front++)  
                                       {
                                           if (height[i] > height[front])
                                               break;
                                           else
                                               iwidth ++;
                                       }
                                         
                                       // 计算面积
                                       int currentArea = height[i]*iwidth;
                                 
                                       
                                       if (res < currentArea)
                                         res = currentArea;
                                   }  
                                   return res; 
  • 相关阅读:
    Samba.conf案例 Ubuntu
    samba服務器下文件夾chmod權限技巧
    华为AR1220
    vsftpd.conf案例
    FTP指令说明
    Ubuntu 16.04 LTS 搭建LAMP
    记录踩过的坑——代理IP
    重写验证时重定向
    顶级页面
    文件中用WriteLine追加内容的两种方法
  • 原文地址:https://www.cnblogs.com/jfwu/p/5640630.html
Copyright © 2011-2022 走看看