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

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

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

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

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

猜你喜欢

  • 适用于WebForm Mvc的Pager分页组件C#实现

    2022-05-11 22:11:34
  • Spring Boot 中的Servlet简单使用

    2023-01-28 03:08:06
  • 基于java 线程的几种状态(详解)

    2022-08-31 19:51:47
  • Android中Window添加View的底层原理

    2021-07-15 06:13:05
  • Springboot整合Netty实现RPC服务器的示例代码

    2023-07-14 11:35:35
  • java面试题之try中含return语句时代码的执行顺序详解

    2023-11-24 07:34:16
  • 关于Java中修饰符的总结(fina除外)

    2023-11-22 23:15:57
  • SpringBoot入坑笔记之spring-boot-starter-web 配置文件的使用

    2021-12-15 13:11:46
  • Flutter开发技巧ListView去除水波纹方法示例

    2021-12-27 14:15:24
  • java基础学习笔记之泛型

    2022-05-31 01:49:44
  • 利用Java读取二进制文件实例详解

    2023-07-27 03:25:42
  • C# DataTable与Model互转的示例代码

    2022-02-07 19:37:44
  • Android Button 自带阴影效果另一种解决办法

    2021-06-07 04:23:02
  • SpringMVC的执行流程及组件详解

    2021-06-17 23:29:21
  • java使用@Scheduled注解执行定时任务

    2021-09-16 08:37:16
  • 浅谈Java基准性能测试之JMH

    2023-01-25 13:17:40
  • Linux中Java开发常用软件安装方法总结

    2022-03-11 16:21:03
  • Android 自定义密码输入框实现代码

    2023-02-11 09:18:40
  • 详解OpenGL Shader抗锯齿的实现

    2021-09-24 21:54:07
  • 安卓11适配攻略抢先看

    2022-05-22 22:39:05
  • asp之家 软件编程 m.aspxhome.com