利用枚举法求直方图中最大矩形面积的方法实例
时间:2020-12-15 01:19:16|栏目: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 );
}
}
总结
栏 目:JAVA代码
本文地址:http://www.codeinn.net/misctech/32980.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




