首页 > 其他分享 >day 60 84. 柱状图中最大的矩形

day 60 84. 柱状图中最大的矩形

时间:2023-04-30 09:23:04浏览次数:28  
标签:int heights 60 柱状图 矩形 day 84

给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。

求在该柱状图中,能够勾勒出来的矩形的最大面积。

 

 

class Solution {
    public int largestRectangleArea(int[] heights) {
if (heights == null || heights.length == 0) {
            return 0;
        }
        Stack<Integer> stack = new Stack<>();
        int max = 0;
        for (int i = 0; i <= heights.length; i++) {
            int cur = i == heights.length ? -1 : heights[i];
            while (!stack.isEmpty() && cur <= heights[stack.peek()]) {
                int h = heights[stack.pop()];
                int w = stack.isEmpty() ? i : i - stack.peek() - 1;
                max = Math.max(max, h * w);
            }
            stack.push(i);
        }
        return max;
        
    
    }
}

 

标签:int,heights,60,柱状图,矩形,day,84
From: https://www.cnblogs.com/libertylhy/p/17364909.html

相关文章

  • day 59 503.下一个更大元素II | 42. 接雨水
    给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字x的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出-1。示例1:输入:[1,2,1]输出:[2,......
  • day60(2023.4.29)
    1.JavaScript简介 2.JavaScript语句、标识符 3.变量 4.JavaScript引入到文件 5.JavaScript注释与常见输出方式 6.数据类型 7.typeof运算符 8.运算符之算术运算符 9.运算符之赋值运算符 10.运算符之比较运算符 11.......
  • CF600E Lomsat gelral(树上启发式合并)
    题目链接:https://codeforces.com/problemset/problem/600/E这是一道树上启发式合并的题,就只是在模板的基础上稍微变化了一下解题思路:我们需要计算当前u节点的答案,要计算加入非重链节点对此答案的影响,在计算加入节点对ans影响的时候,遍历u除了重链外的所有子树节点(因为重链部分的......
  • P7603 [THUPC2021] 鬼街(减半警报器模板)
    P7603[THUPC2021]鬼街(减半警报器模板)前言这是一个由lxl大佬提出的神奇trick,第一次省选集训的时候有点颓,听完了没写。刚好明天又要讲这个不如写篇题解。还是,我太弱了;所以又是研究一晚上才写出来,所以还是吧我对这道题的理解讲讲。正文何为折半报警器按照lxl的ppt上的......
  • day08-优惠券秒杀04
    功能03-优惠券秒杀044.功能03-优惠券秒杀4.7Redis优化秒杀4.7.1优化分析现在来回顾一下优惠券秒杀业务的两个主要问题:(1)首先是对优惠券的扣减,需要防止库存超卖现象;(2)其次,需要对每个用户下单数量进行限制,实现一人一单的功能。处理秒杀优惠券的业务:先根据获取到的优惠券id,先......
  • 5760: 家庭问题 并查集
    描述 有n个人,编号为1,2,……n,另外还知道存在K个关系。一个关系的表达为二元组(α,β)形式,表示α,β为同一家庭的成员。当n,k和k个关系给出之后,求出其中共有多少个家庭、最大的家庭中有多少人?例如:n=6,k=3,三个关系为(1,2),(1,3),(4,5)此时,6个人组成三个家庭,即:{1,2,3}为一个家庭,{4,5}为一个家......
  • 完整实现React day10
    update流程与mount流程的区别。对于beginWork:需要处理ChildDeletion的情况需要处理节点移动的情况(abc->bca)对于completeWork:需要处理HostText内容更新的情况需要处理HostComponent属性变化的情况对于commitWork:对于ChildDeletion,需要遍历被删除的子树对于Update,需......
  • day
        ......
  • TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误
    MicrosoftWindows[版本6.1.7601]版权所有(c)2009MicrosoftCorporation。保留所有权利。C:\Users\Administrator>lsnrctlLSNRCTLfor64-bitWindows:Version11.2.0.1.0-Productionon28-4月-202311:29:22Copyright(c)1991,2010,Oracle.Allrightsreserved......
  • Java-Day-16( 常用类 )
    Java-Day-16常用类包装类(Wrapper)针对八种基本数据类型定义相应的引用类型——包装类,有了类的特点,就可以调用类中的方法基本数据类型包装类booleanBooleancharCharacterbyteByteshortShortintIntegerlongLongfloatFloatdouble......