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

lc84 柱状图中最大的矩形

时间:2024-03-17 14:45:11浏览次数:28  
标签:柱子 int while 柱状图 vector lc84 矩形

给定数组H[n],表示柱状图中各个柱子的高度,每个柱子彼此相邻,且宽度为1。求该柱状图中,能够勾勒出来的矩形的最大面积。
1<=n<=1e5; 0<=H[i]<=1e4

枚举每个柱子作为最短时能得到的最大矩形,尽量往两边延伸,取最小值即为答案。

class Solution {
public:
    int largestRectangleArea(vector<int>& H) {
        int n = H.size();
        vector<int> L(n), R(n), s;
        for (int i = 0; i < n; i++) {
            while (!s.empty() && H[i] <= H[s.back()])
                s.pop_back();
            L[i] = s.empty() ? -1 : s.back();
            s.push_back(i);
        }
        s.clear();
        for (int i = n-1; i >= 0; i--) {
            while (!s.empty() && H[i] <= H[s.back()])
                s.pop_back();
            R[i] = s.empty() ? n : s.back();
            s.push_back(i);
        }
        int ans = 0;
        for (int i = 0; i < n; i++) {
            ans = max(ans, H[i] * (R[i]-L[i]-1));
        }
        return ans;
    }
};

标签:柱子,int,while,柱状图,vector,lc84,矩形
From: https://www.cnblogs.com/chenfy27/p/18078564

相关文章

  • 代码随想录算法训练营第六十天 | 单调栈 柱状图中最大的矩形 完结撒花
    目录柱状图中最大的矩形LeetCode84.柱状图中最大的矩形柱状图中最大的矩形双指针解法本题要记录记录每个柱子左边第一个小于该柱子的下标,而不是左边第一个小于该柱子的高度。在寻找的过程中使用了whileclassSolution{publicintlargestRectangleArea(in......
  • lc2250 统计包含每个点的矩形数目
    有n个矩形,第i个矩形左下角在(0,0)处,右上角在(l[i],h[i])。另给出m个点(x[i],y[i]),问有多少个矩形覆盖了这个点,点在边上也算是覆盖。1<=n,m<=5e4;1<=l[i],h[i]<=1e9;1<=h[i],y[i]<=100;所有矩形互不相同,所有查询点互不相同。二维偏序统计问题,可以离线处理,先对其中一维排序,将......
  • HDU 2056:Rectangles(两个矩形交点的性质)
    一、原题链接Problem-2056(hdu.edu.cn)二、题面Giventworectanglesandthecoordinatesoftwopointsonthediagonalsofeachrectangle,youhavetocalculatetheareaoftheintersectedpartoftworectangles.itssidesareparalleltoOXandOY.三、......
  • WPF绘图指南:用XAML轻松实现圆、线、矩形、文字、图片创意元素
     概述:在WPF中,通过使用不同的元素如Ellipse、Line、Rectangle等,可以轻松绘制各种图形,包括圆、线条、椭圆、矩形、多边形等。同时,通过TextBlock展示文字,Image展示图片,以及Path创建路径和曲线,使得图形的绘制变得灵活多样。通过简单的XAML代码,开发者可以快速构建各种图形和界面元......
  • R:相对丰度堆叠柱状图
    #清空当前环境中的所有对象rm(list=ls())setwd("C:\\Users\\Administrator\\Desktop\\新建文件夹\\Stackedbarchart")#设置工作目录library(ggplot2)#用于绘图library(ggalluvial)#用于绘制柱状图背后的条带library(grid)#用于访问unit函数ra<-as.matrix(......
  • 矩形总面积
    试题D:矩形总面积【问题描述】平面上有个两个矩形R1和R2,它们各边都与坐标轴平行。设(x1,y1)和(x2,y2)依次是R1的左下角和右上角坐标,(x3,y3)和(x4,y4)依次是R2的左下角和右上角坐标,请你计算R1和R2的总面积是多少?注意:如果R1和R......
  • 代码随想录 day64 柱状图中最大的矩形
    柱状图中最大的矩形本题和接雨水在很多地方都很相似但是不是求凹槽了而是求突起就是相同的思路求不同的柱体对于每一个柱体找左边最矮的柱体这个柱体的右边的柱体和这个柱体围成的矩形就为最大同理找右边的柱体这里注意要用while而不是if因为要找到最矮的而......
  • 【Filament】绘制矩形
    1前言​Filament环境搭建中介绍了Filament的Windows和Android环境搭建,绘制三角形中介绍了绘制纯色和彩色三角形,本文将使用Filament绘制纯色和彩色矩形。2绘制矩形​本文项目结构如下,完整代码资源→Filament绘制矩形。2.1自定义基类​为方便读者将......
  • 已知椭圆长轴,短轴,圆心,旋转角度求任意椭圆外包矩形
    参考:https://blog.csdn.net/fangmin723/article/details/118595271参考:https://blog.csdn.net/liuxiang3/article/details/114258907一、已知椭圆长轴,短轴,圆心,旋转角度求椭圆(旋转未做平移)方程一般式:一般来说,椭圆可以以任何一点为中心,也可以有与坐标轴不平行的轴。这样的椭圆总......
  • 蓝桥杯2022年第十三届省赛真题-矩形拼接
    目录题目分析代码题目分析情况1:三个矩形有一边相等。(完全匹配:4边)情况2:三个矩形中有前两个矩形的边等于第三个矩形的边,而且前两个矩形的另一条边相等。(完全匹配:4边)情况3:三个矩形中有前两个矩形的边等于第三个矩形的边,而且前两个矩形的另一条边不相等。(部分匹配:6边)......