首页 > 编程 > Java > 正文

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

2019-11-26 09:16:17
字体:
来源:转载
供稿:网友

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

例如给定直方图{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 );  }}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对武林网的支持。如果你想了解更多相关内容请查看下面相关链接

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表