直方图内最大矩形

2023-05-16

有一个直方图,用一个整数数组表示,其中每列的宽度为1,求所给直方图包含的最大矩形面积。比如,对于直方图[2,7,9,4],它所包含的最大矩形的面积为14(即[7,9]包涵的7x2的矩形)。

给定一个直方图A及它的总宽度n,请返回最大矩形面积。保证直方图宽度小于等于500。保证结果在int范围内。

测试样例:

[2,7,9,4,1],5  

返回:14  
//递归转dp
  public int countArea(int[] A, int n) {
        // write code here
        int dp[][] = new int[n][n];
        dp[0][0]=A[0];
        for(int i=1;i<n;++i)
            dp[0][i]=Math.max(A[i-1],A[i]);
        int t,minh,s;
        for(int i=1;i<n;++i){
             t=n-i;
            for(int j=0;j<t;++j){

                 minh=A[j];
                 for(int k=1;k<=i;++k){
                     minh=Math.min(minh, A[j+k]);
                 }
                 s = (i+1)*minh;
                 dp[i][j]=Math.max(dp[i-1][j], dp[i-1][j+1]);
                 dp[i][j]=Math.max(dp[i][j], s);
                 if(j>0)
                 dp[i][j]=Math.max(dp[i][j], dp[i][j-1]);
            }
        }



        return dp[n-1][0];
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

直方图内最大矩形 的相关文章

随机推荐

  • Java类的加载顺序及生命周期原理解析

    摘要 经常看到java面试题static 构造函数等混合执行 问会输出什么 xff0c 这里针对类的加载及类的生命周期进行原理的解析 xff0c 就能很快明白了 java类的加载顺序 简单的说 xff0c 首先要知道Java虚拟机对clas
  • 牛客网-贪心-裁减网格纸

    https www nowcoder com questionTerminal 65865c6644154bb4acca764b1480ecbb orderByHotValue 61 1 amp questionTypes 61 00010
  • 牛客网-贪心-最大间隔

    https www nowcoder com questionTerminal 3a571cdc72264d76820396770a151f90 orderByHotValue 61 1 amp questionTypes 61 00010
  • Ubuntu 执行属性为executable (application/x-executable)的文件

    ubuntu14 04 LTS下执行属性为executable application x executable 的文件的方法 xff1a 1 chmod 43 x filename 2 filename 就可以执行了 xff01 xff0
  • 牛客网-贪心-扫描透镜

    https www nowcoder com questionTerminal 6a219d196df44d3abd82fbadb1a62c3f orderByHotValue 61 1 amp questionTypes 61 00010
  • TCP三次握手与四次握手

    HTTP工作流程 当我们从浏览器输入一个url xff0c Http的工作流程如下图所示 xff1a DNS解析流程请看DNS域名解析过程这篇文章 现在来讲TCP三次握手 TCP三次握手 什么是TCP TCP是主机对主机层的传输控制协议 x
  • JAVA题目汇总

    什么是Java虚拟机 xff1f 为什么Java被称作是 平台无关的编程语言 xff1f Java虚拟机是一个可以执行Java字节码的虚拟机进程 Java源文件被编译成能被Java虚拟机执行的字节码文件 Java被设计成允许应用程序可以运行
  • 二维数组中的查找

    时间限制 xff1a 1秒 空间限制 xff1a 32768K 热度指数 xff1a 343751 本题知识点 xff1a 查找 算法知识视频讲解 题目描述 在一个二维数组中 xff0c 每一行都按照从左到右递增的顺序排序 xff0c 每一
  • 替换空格

    时间限制 xff1a 1秒 空间限制 xff1a 32768K 热度指数 xff1a 307877 本题知识点 xff1a 字符串 算法知识视频讲解 题目描述 请实现一个函数 xff0c 将一个字符串中的空格替换成 20 例如 xff0c
  • 从尾到头打印链表(链表反转)

    时间限制 xff1a 1秒 空间限制 xff1a 32768K 热度指数 xff1a 265674 本题知识点 xff1a 链表 算法知识视频讲解 题目描述 输入一个链表 xff0c 从尾到头打印链表每个节点的值 笔记收藏纠错 span c
  • 重建二叉树

    时间限制 xff1a 1秒 空间限制 xff1a 32768K 热度指数 xff1a 177198 算法知识视频讲解 题目描述 输入某二叉树的前序遍历和中序遍历的结果 xff0c 请重建出该二叉树 假设输入的前序遍历和中序遍历的结果中都不含
  • 用两个栈实现队列

    时间限制 xff1a 1秒 空间限制 xff1a 32768K 热度指数 xff1a 118150 本题知识点 xff1a 队列 栈 算法知识视频讲解 题目描述 用两个栈来实现一个队列 xff0c 完成队列的Push和Pop操作 队列中的元
  • 旋转数组的最小数字

    时间限制 xff1a 3秒 空间限制 xff1a 32768K 热度指数 xff1a 162501 本题知识点 xff1a 查找 算法知识视频讲解 题目描述 把一个数组最开始的若干个元素搬到数组的末尾 xff0c 我们称之为数组的旋转 输入
  • 变态的台阶

    时间限制 xff1a 1秒 空间限制 xff1a 32768K 热度指数 xff1a 98625 算法知识视频讲解 题目描述 一只青蛙一次可以跳上1级台阶 xff0c 也可以跳上2级 它也可以跳上n级 求该青蛙跳上一个n级的台阶总共有多少种
  • 解决xterm显示远程窗口出现“Can't open display: localhost:11.0”的问题

    参考 xff1a http unix stackexchange com questions 117159 cannot start xterm over ssh after several successes 问题描述 xff1a 远程调
  • 数值的整数次方

    时间限制 xff1a 1秒 空间限制 xff1a 32768K 热度指数 xff1a 117073 算法知识视频讲解 题目描述 给定一个double类型的浮点数base和int类型的整数exponent 求base的exponent次方 笔
  • 机器人走方格I

    链接 xff1a https www nowcoder com questionTerminal e8bb8e68434e42acbcdff0341f2a32c5 orderByHotValue 61 1 amp mutiTagIds 61
  • 年终奖

    链接 xff1a https www nowcoder com questionTerminal 72a99e28381a407991f2c96d8cb238ab orderByHotValue 61 1 amp mutiTagIds 61
  • 最近公共祖先

    链接 xff1a https www nowcoder com questionTerminal 70e00e490b454006976c1fdf47f155d9 orderByHotValue 61 1 amp mutiTagIds 61
  • 直方图内最大矩形

    有一个直方图 xff0c 用一个整数数组表示 xff0c 其中每列的宽度为1 xff0c 求所给直方图包含的最大矩形面积 比如 xff0c 对于直方图 2 7 9 4 它所包含的最大矩形的面积为14 即 7 9 包涵的7x2的矩形 给定一个