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

84. 柱状图中最大的矩形

时间:2024-12-24 15:43:37浏览次数:3  
标签:cur heights 柱状图 单调 ans 矩形 stack 84

  1. 题目链接

  2. 解题思路:单调栈,以i位置为高度(宽),最长能有多长,其实就是找离i最近的,小于i的位置,其实就是单调栈

  3. 代码

    class Solution:
        def largestRectangleArea(self, heights: List[int]) -> int:
            # 使用单调栈   栈底到栈顶   小到大
            stack = []
            ans = 0
            n = len(heights)
            for i in range (n): 
                while stack and heights[stack[-1]] > heights[i]:
                    cur = stack.pop()
                    R = i
                    L = 0
                    if stack:
                        L = stack[-1] + 1
                    ans = max(ans, (R - L) * heights[cur])
                stack.append(i)
            while stack:
                cur = stack.pop()
                R = n
                L = 0
                if stack:
                    L = stack[-1] + 1
                ans = max(ans, (R - L) * heights[cur])
            return ans
            
    

标签:cur,heights,柱状图,单调,ans,矩形,stack,84
From: https://www.cnblogs.com/ouyangxx/p/18627816

相关文章

  • Codeforces 1842I. Tenzing and Necklace
    神仙题。本题解参考官方题解进行编写,并补充了最后比较关键的怎么调整\(m\)。题目链接:I-TenzingandNecklace题目大意:给定一个环,环上有\(n\)个点与\(n\)条边,第\(i\)条边连接\(i\)与\(i\bmodn+1\),边权为\(a_i\)。要求断开若干边使得环断为若干段,并且每一段上点的......
  • ABC 384(A~F)
    期末周的第二把网瘾,vp了一把abc。这把打得还是比较舒服的,做出了A~E。但最后两道题还是出得太慢了(一道思路太慢,一道调试太慢)。什么时候能够在赛时做出F题呢qwq...ABC这场abc的ABC题还是很白给的,就不再赘述了。D前缀后缀和+二分题意是给定一个循环数组和定值\(sum\),问是否存......
  • 游泳溺水识别数据集,对9984张原始图片进行YOLO,COCO JSON, VOC XML 格式的标注,平均识别
    游泳溺水识别数据集:对9984张原始图片进行YOLO,COCOJSON,VOCXML格式的标注,平均识别率在91.7%以上,可识别泳池或者水库中是否有人溺水。 数据集分割训练组98%        9818图片有效集%        0图片测试集2%        166图片......
  • python毕设民宿旅馆消费数据分析系统38384程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着旅游业的蓬勃发展,民宿旅馆作为一种新兴的住宿方式,以其独特的魅力和个性化的服务,逐渐受到广大旅游者的青睐。然而,随着民宿旅馆数量的不......
  • Toyota Programming Contest 2024#12(AtCoder Beginner Contest 384)D题
    D-RepeatedSequence 思路:先存储数组的前缀和,把周期的和剪掉,这样就只需要查找在一个周期是否满足,枚举1-n,毕竟不确定周期是从哪开始的,对于从当前数为起始的周期,当剩余的数res小于从当前i为起点的i后缀和时,我们只需要查找一个R 满足b[r]-b[i-1]区间和等于res,若最后查......
  • (免费源码)计算机毕业设计必学必看 万套实战教程 java、python、php、node.js、c#、APP
    摘要随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,机房预约系统小程序被用户普遍使用,为方便用户能够可以随时进行机房预约系统小程序的数据信息管理,特开发了基于机房预约系统......
  • vue-canvas-创建矩形框对指定区域的点数据进行坐标变换
    demo简介读取两个csv文件(geo数据和drawing数据)绘制散点图使用矩形框选中范围内的数据(只选中drawing数据)拖动矩形框或reshape矩形框,同时,矩形框内的数据点坐标也相应变换核心代码介绍1template设置了工具栏和画布作为两个核心组件工具栏包含”绘制矩形框”,“删除矩......
  • (84)QPSK频带调制(载波调制)解调与性能仿真的MATLAB实现源码
    文章目录前言一、QPSK调制简介1.QPSK调制的原理2.QPSK调制的特点与应用二、MATLAB仿真源码三、仿真结果1.QPSK基带调制信号与频带调制信号的波形图2.接收机QPSK星座图3.QPSK频带调制系统的性能仿真曲线四、子函数与完整代码总结前言本文给出QPSK频带调制传输......
  • ABC384E题通过历程
    原题连接:[ABC384E]在赛时的时候,我们写出了一份非常牛逼的代码:#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=510;inta[N][N];intvis[N][N];structnode{booloperator()(inta,intb) {returna>b;}};i......
  • 1847. 最近的房间
      一个酒店里有 n 个房间,这些房间用二维整数数组 rooms 表示,其中 rooms[i]=[roomIdi,sizei] 表示有一个房间号为 roomIdi 的房间且它的面积为 sizei 。每一个房间号 roomIdi 保证是 独一无二 的。同时给你 k 个查询,用二维数组 queries 表示,其中......