力扣刷题记录 -- JAVA---137--84. 柱状图中最大的矩形

2023-10-30


一、题目

在这里插入图片描述
在这里插入图片描述

二、代码

class Solution 
{
    //类比贪心   局部最优到全局最优
    //左边第一个小于的下标   右边第一个小于的下标   
    public int largestRectangleArea(int[] heights) 
    {
         int i;
         int length = heights.length;
         int[] left_low = new int [length];
         int[] right_high = new int [length];
         int max_size = 0;

         left_low[0] = -1;
         right_high[length-1] = length;

         for(i=1;i<length;i++)
         {
             int t = i-1;
             while(t>=0&&heights[t]>=heights[i]) t = left_low[t];
             left_low[i] = t;
            //  System.out.println(" 左侧  ");
            //  System.out.println("  i  "+i+"  t "+t);
         }

         for(i=length-2;i>=0;i--)
         {
             int t = i+1;
             while(t<=length-1&&heights[t]>=heights[i]) t = right_high[t];
             right_high[i] = t;
         }

         for(i=0;i<length;i++)
         {

            int temp = heights[i]*(right_high[i] - left_low[i]-1);
            // System.out.println("   i   " + i);

            // System.out.println("   right_high[i]   " + right_high[i]);
            // System.out.println("    left_low[i]   " +  left_low[i]);

            // System.out.println("   temp   " + temp);
            max_size = Math.max(temp,max_size);
         }

         return max_size;

    }
}

三、运行结果

在这里插入图片描述

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

力扣刷题记录 -- JAVA---137--84. 柱状图中最大的矩形 的相关文章

随机推荐

  • 写5个数学建模的经典模型案例和代码

    1 线性规划模型案例 生产计划 假设一家工厂生产两种产品A和B 每个月有100个工作日 每个工作日可以生产200个A产品或150个B产品 A产品售价为200元 个 B产品售价为300元 个 每个月至少需要保证收入不低于200000元 制定生
  • 随机效应估算与固定效应估算_固定效应还是随机效应——Hausman检验.PPT

    固定效应还是随机效应 Hausman检验 7 3 随机效应模型估计 7 3 2 用EViews7 2估计随机效应模型 数据导入 数据结构转换以及模型设定与固定效应模型估计一样 不同的是在panel option的cross section中
  • Vue之父子组件通过事件通信

    前言 组件间传值的章节我们知道父组件给子组件传值的时候 使用v bind的方式定义一个属性传值 子组件根据这个属性名去接收父组件的值 但是假如子组件想给父组件一些反馈呢 就不能使用这种方式来 而是使用事件的方式 父组件通过注册这个事件的监听
  • 使用Docker安装Mysql数据库,及国内常用docker镜像地址

    1 安装docker 输入 yum install y docker 2 配置docker镜像地址 输入 vi etc docker daemon json 在配置文件中写入 registry mirrors http hub mirror
  • 拷贝复制命令行输出放在系统剪贴板上

    转载自 http oldratlee com post 2012 12 23 command output to clip 为什么要这么做 直接把命令的输出 比如 grep awk sed find 或是你的程序输出结果 放到剪切板上 这么
  • Redis使用总结(三、缓存击穿问题)

    什么是缓存击穿 在谈论缓存击穿之前 我们先来回忆下从缓存中加载数据的逻辑 如下图所示 因此 如果黑客每次故意查询一个在缓存内必然不存在的数据 导致每次请求都要去存储层去查询 这样缓存就失去了意义 如果在大流量下数据库可能挂掉 这就是缓存击穿
  • 低功耗设计之门控时钟

    门控时钟一般是用于多比特的数据 因为门控单元也有资源消耗 需要耗电 一般数据位宽超过3bit才会有收益 1 与门 或门 门控时钟 门控时钟的控制信号可以选用高电平有效或低电平有效 若控制信号高电平有效 可以使用与门进行时钟门控 时钟被关闭时
  • Qt 子窗口和父窗口,子窗口和子窗口控件获取

    文章目录 前言 一 代码 二 局限性 前言 Qt开发过程中 难免会遇到子窗口需要获取父窗口某个控件的状态 或者是子窗口需要获取另外一个子窗口某个控件的状态 之前用过回调 全局变量 信号和槽连接 但是都太麻烦了 后面研究出一种简单的方法 会有
  • A--玉米大炮--2022河南萌新联赛第(三)场:河南大学

    输入 3 3 1 1 2 2 3 3 输出 0 说明 开始时 小蓝控制所有大炮立即发射炮弹 僵王博士受到 666 点伤害 直接被击溃 示例2 输入 2 20 5 1 5 3 输出 2 说明 开始时 小蓝控制所有大炮立即发射炮弹 僵王博士受到
  • Linux终端配置——zsh+插件优化

    文章目录 安装Zsh Ubuntu版本 安装插件 更改默认shell 并配置插件和主题 启动插件和主题 刚入Linux的萌新 发现Linux虽然牛 但是这个终端也太不智能了 既不美观也不智能 所以本篇博客可以通过安装zsh进行简单的优化 包
  • react16常见api以及原理剖析

    Vue 与 React 两个框架的粗略区别对比 Vue 的优势包括 模板和渲染函数的弹性选择 简单的语法及项目创建 更快的渲染速度和更小的体积 React 的优势包括 更适用于大型应用和更好的可测试性 同时适用于 Web 端和原生 App
  • sqli练习1-5关(超详细)

    此博客仅用来记录我的学习过程 我会把每一步都记录下来 sqlli 练习 第一关 手工注入 第二关 手工注入 第三关 手工注入 第四关 手工注入 第五关 手工注入 第一关 手工注入 判断是否存在注入 第二关 手工注入 判断是否存在注入以及注入
  • RBAC权限详解

    1 传统的权限设计 首先 我们先了解下什么是传统的权限设计 从上面的图中 我们发现 传统的权限设计是对每个人进行单独的权限设置 但这种方式已经不适合目前企业的高效管控权限的发展需求 因为每个人都要单独去设置权限 2 RBAC权限详解 基于此
  • 有了这款可视化算法项目,算法不再难!

    我的新书 Android App开发入门与实战 已于2020年8月由人民邮电出版社出版 欢迎购买 点击进入详情 GitHub严选 每天推荐一个GitHub优质开源项目 从不奢求生活能给予我最好的 只是执着于寻求最适合我的 大家好 我是严选哥
  • SpringBoot整合SpringData JPA详解

    本篇文章主要记录SpringBoot整合SpringData JPA 感兴趣的小伙伴和小编一起来学习吧 目录 1 添加依赖 2 编写一个实体类 3 编写一个Dao接口来操作实体类对应的数据表 4 application配置 5 编写接口 1
  • 分布式秒杀案例讲解教程文档

    程序员ken 一 准备工作 1 1 vmware软件安装 虚拟机 相关教程 http c biancheng net view 714 html 网络配置这块 1 进入网络配置文件目录 cd etc sysconfig network sc
  • 产品经理针对用户访谈获得的信息该如何理解吸收

    核心 他人的负反馈 吐槽 要认可 他人的正反馈 认可 要谨慎 以产品规划阶段为例 我们打算做一个产品 为了论证市场价值 我们会找相关的客用户开展用户访谈 根据事先准备的访谈大纲开展访谈 收集信息很容易 如何筛选 分析信息 这才是难点和关键
  • UE4数据写入Json格式

    用UE4写入Json很简单只需要使用 TSharedPtr
  • 散列(哈希)表

    1 如何构造散列函数 总结三点散列函数设计的基本要求 1 散列函数计算得到的散列值是一个非负整数 下标从0开始 2 如果key1 key2 那么hash key1 hash key2 相同的key经过hash 得到的散列值应该是相等的 3
  • 力扣刷题记录 -- JAVA---137--84. 柱状图中最大的矩形

    目录 一 题目 二 代码 三 运行结果 一 题目 二 代码 class Solution 类比贪心 局部最优到全局最优 左边第一个小于的下标 右边第一个小于的下标 public int largestRectangleArea int he