软件编程
位置:首页>> 软件编程>> java编程>> 利用枚举法求直方图中最大矩形面积的方法实例

利用枚举法求直方图中最大矩形面积的方法实例

作者:gavenyeah  发布时间:2022-06-22 21:16:31 

标签:java,枚举,直方图,矩形面积

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

例如给定直方图{2,3,1,2,4,2}

则直方图中最大矩形面积为x=(3,6),|x|=3,y=2,max面积=6

思考:利用枚举法


/*当前位置往前进行枚举法*/
publicclass Solution{
 static int histogramMaxArea( int[]a ){
    int maxS =a [0];
    for(int i =0;i <a .length;i ++){    //直方图中依次向后枚举
      int min =a [i ];         //记录当前条图及之前最小值
      int m =0;            //记录底部边长
      for(int j =i ;j >=0;j --){     //依次向前取最大矩形
        m++;
        if( a[ j]< min){
          min= a[ j];
       }
        int s =m *min ;       //矩形面积计算
        if( s> maxS){
          maxS= s;
       }
     }
   }
    return maxS ;
 }
 public static void main(String args[]){
    int a []={2,1,1,2};
    int maxArea =histogramMaxArea( a);
   System. out.print(maxArea );
 }
}

来源:https://blog.csdn.net/y999666/article/details/50786041

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com