利用枚举法求直方图中最大矩形面积的方法实例
作者: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


猜你喜欢
- Spring多数据源实现的方式大概有2中,一种是新建多个MapperScan扫描不同包,另外一种则是通过继承AbstractRoutingD
- /// <summary> /// 实体转换辅助类 /// </summary> public class Mode
- 方法一:<uses-permission android:name="android.permission.WAKE_LOC
- AndroidStudio 的SVN 安装和使用方法与我以前用的其他IDE 都有很大差别,感觉特麻烦,网上相关资料很少,貌似现在 Git 比
- 中国科学院开源协会镜像站地址:IPV4/IPV6: http://mirrors.opencas.cn 端口:80IPV4/IPV6: ht
- 介绍责任链模式是一种行为型设计模式,其目的是将请求从一个对象传递到另一个对象,直到找到能够处理该请求的对象为止.再责任链模式中,每个对象都持
- Web服务器是运行及发布Web应用的容器,只有将开发的Web项目放置到该容器中,才能使网络中的所有用户通过浏览器进行访问。开发Java We
- 拿到了项目框架工程代码却没有uml图,那么方法之间的调用关系功能流转就不容易看出来,那么如何产生类图呢,记忆里方法有下:1.rose逆向工程
- 1. 人机对战要增添一个人机对战的模块, 最大的难点就是如何让人机知道下在什么位置是最好的, 不仅要具备进攻的能力, 还需要具备防守的能力.
- 在 WinForms 中,有时要执行耗时的操作,在该操作未完成之前操作用户界面,会导致用户界面停止响应。解决的方法就是新开一个线程,把耗时的
- 一、SpringCache介绍Spring Cache 是一个优秀的缓存组件。自Spring 3.1起,提供了类似于@Transaction
- .Net为我们提供了众多的泛型集合。比如,Stack<T>先进后出,Queue<T>先进先出,List<T&g
- Android 3.0引入了CursorLoader实现异步加载数据,为了避免同步查询数据库时阻塞UI线程的问题。在API 11之前可以通过
- 一、蒙特卡洛法介绍蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是一种以概率统计理论为基础
- 一、项目简述功能包括: 仓库管理,出入库管理,仓库人员管理,基本信息管理, 供应商信息,系统管理等等。二、项目运行环境配置: Jdk1.8
- SpringBoot切面拦截@PathVariable参数及抛出异常的全局处理微信小程序的接口验证防止非法请求,登录的时候获取openId生
- 这篇文章主要介绍了MyBatis Mapper接受参数的四种方式代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- 前几天在琢磨mybatis xml热加载的问题,原理还是通过定时扫描xml文件去跟新,但放到项目上就各种问题,由于用了mybatisplus
- 前言:在日常的代码开发中,此处相信每个开发人员对代码质量都是高要求,有自己的一套代码规范,但是我们不是单独作战,往往大家都是团队作战,人是最
- 问题之前一直使用Mybatis,最近尝试使用Mybatis-Plus,却在updateById登录成功后更新最近登录时间出现了问题,一般业务