leetCode.84. 柱状图中最大的矩形

news2024/9/25 11:19:28

leetCode.84. 柱状图中最大的矩形


题目思路
在这里插入图片描述


代码

class Solution {
public:
    int largestRectangleArea( vector<int>& h ) {
        int n = h.size();
        vector<int> left( n ), right( n );
        stack<int> st;

        // 求每个矩形的第一个小于左边界的矩形 - 用单调栈
        for ( int i = 0; i < n; ++i ) {
            while ( st.size() && h[st.top()] >= h[i] ) st.pop();
            if ( st.empty() ) left[i] = -1;
            else left[i] = st.top();
            st.push( i );
        }

        // 求每个矩形的第一个小于右边界的矩形 - 用单调栈
        st = stack<int>(); // 清空栈
        for ( int i = n - 1; i >= 0; --i ) {
            while ( st.size() && h[st.top()] >= h[i] ) st.pop();
            if( st.empty() ) right[i] = n;
            else right[i] = st.top();
            st.push( i );
        }

        // 遍历维护 最大值
        int ret = 0;
        for (int i = 0; i < n; ++i) ret = max( ret, (right[i] - left[i] - 1) * h[i] );

        return ret;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1705983.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大小字符判断

//函数int my_isalpha(char c)的功能是返回字符种类 //大写字母返回1&#xff0c;小写字母返回-1.其它字符返回0 //void a 调用my_isalpha()&#xff0c;返回大写&#xff0c;输出*&#xff1b;返回小写&#xff0c;输出#&#xff1b;其它&#xff0c;输出&#xff1f; #inclu…

回归自然:拥抱生态农业

在这个喧嚣的时代&#xff0c;我们渴望回归大自然的怀抱&#xff0c;享受那份纯净与安宁。广西生态农业&#xff0c;正是我们追寻自然、健康生活的理想选择。它摒弃了传统农业的弊端&#xff0c;采用环保、可持续的种植方式&#xff0c;为我们带来了绿色、无污染的农产品。生态…

关于python中屏蔽输出

python中屏蔽输出包含屏蔽标准输出&#xff08;比如打印出来的内容&#xff09;、屏蔽标准错误&#xff08;错误信息&#xff09;还有屏蔽logging信息等。 屏蔽标准输出 import contextlib import oswith open(os.devnull, "w") as devnull:with contextlib.redire…

内网渗透测试笔记

内网渗透流程&#xff1a;打通->拿权限->留后门->放后台->攻击其他人 msf小知识: setg->设置全局变量; 监听模块(必须掌握):exploit/multi/handler; 为什么很多时候优选选择meterpreter的载荷?因为这个是msf的集成工具,使用更快捷,方法和工具更多;例 如:ru…

【XR806开发板试用】基础篇,从零开始搭建一个LCD彩屏时钟(ST7735S驱动)

本文从搭建环境开始&#xff0c;step by step教大家使用XR806实现驱动SPI屏幕&#xff08;ST7735S驱动&#xff09;&#xff0c;并连接WiFi实现ntp对时&#xff0c;最终实现把时间显示到屏幕上。 #1. 搭建开发环境 1. 安装编译环境所需的依赖包 基于ubuntu 20.04&#xff0c;按…

第十二周 5.20 面向对象的三大特性(封装、继承、多态)(一)

一、封装 1.目前的程序无法保证数据的安全性、容易造成业务数据的错误 2.private:私有的&#xff0c;被private修饰的内容只能在本类中访问 3.为私有化的属性提供公开的get和set方法 (1)get方法&#xff0c;获取私有化属性的值&#xff1a; public 返回值类型 get属性名…

第十三周 5.27面向对象的三大特性(封装、继承、多态)(三)

3.instanceof避免类型转换异常: (1)语法:引用名 instanceof 类名 (2)执行:判断引用中存储的实际对象类型是否兼容于后面的类型(是否为后面类型的一种)&#xff0c;兼容一true&#xff0c;不兼容—false (3)作用:可以在程序设计中避免类型转换异常 直接使用案例…

电磁辐射仿真软件CST的材料概述【仿真入门】

材料概述(1) CST中提供的各种材料&#xff01; 下面介绍一下&#xff0c;CST中可以设置的材料属性。 -PEC是Perfect Electric Conductor的缩写&#xff0c;表示没有Loss的理想导体。 -Normal基本的材料模型&#xff0c;一般多用于介质(Dielectric)材料定义。 -Anisotropic…

M-A352AD在桥梁/建筑结构健康监测中的应用

钢筋混凝土的面世&#xff0c;使人类基建迈进了新的阶段&#xff0c;大规模的桥梁和高楼大厦拔地而起。随之而来的&#xff0c;就是对其安全的忧虑。因此&#xff0c;我们需要对其结构安全健康进行监测&#xff0c;以保证行恰当的维护和提前发现隐患。桥梁/建筑结构健康监测是以…

重庆耶非凡科技有限公司有选品师项目培训吗?

在当今科技飞速发展的时代&#xff0c;各种科技公司如雨后春笋般涌现&#xff0c;它们在不同领域发挥着重要作用。其中&#xff0c;重庆耶非凡科技有限公司以其独特的业务模式和专业服务&#xff0c;在业界赢得了良好的口碑。那么&#xff0c;重庆耶非凡科技有限公司究竟是做什…

Softing线上研讨会 | 使用Softing smartLink SW-HT将AB PLC下的HART设备连接到艾默生AMS设备管理器

| (免费) 线上研讨会时间&#xff1a;2024年6月25日 14:00~14:45 / 22:30~23:15 艾默生AMS设备管理器凭借其全面功能、优秀诊断能力、兼容性以及远程监控和管理功能&#xff0c;在过程工业中被证明是一款先进的工厂资产管理工具&#xff0c;可用于设备配置、诊断和监控、仪表校…

HCIE vs CCIE:网络界的巅峰对决,你选谁?

在网络工程领域&#xff0c;HCIE和CCIE是两个都属于是顶级认证。 作为网络工程师&#xff0c;你可能在选择认证时面临困惑。那么&#xff0c;HCIE和CCIE到底有什么区别&#xff1f;哪个更适合你&#xff1f; 今天&#xff0c;我们来一场巅峰对决&#xff0c;看看这两大认证的…

c++——模板初始识

1.函数模板 我们经常用到Swap函数交换两个值。由于需要交换的数据的类型不同&#xff0c;我们就需要写不同参数类型的同名函数&#xff0c;也就是函数重载&#xff1a; 然而这三个函数的逻辑是一样的&#xff0c;写这么多有些多此一举&#xff0c;通过函数模版可以写一个通用…

文献解读-群体基因组第一期|《对BMI的影响:探究BMI的基因型-环境效应》

关键词&#xff1a;应用遗传流行病学&#xff1b;群体测序&#xff1b;群体基因组&#xff1b;基因组变异检测&#xff1b; 文献简介 标题&#xff08;英文&#xff09;&#xff1a;The Impact of ACEs on BMI: An Investigation of the Genotype-Environment Effects of BMI标…

民国漫画杂志《时代漫画》第28期.PDF

时代漫画28.PDF: https://url03.ctfile.com/f/1779803-1248635321-5c67ad?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!

Vue中使用Vue-scroll做表格使得在x轴滑动

页面效果 首先 npm i vuescroll 在main.js中挂载到全局 页面代码 <template><div class"app-container"><Header :titletitle gobackgoBack><template v-slot:icon><van-icon clickgoHome classicon namewap-home-o /></templat…

svix - webhooks

文章目录 一、关于 SvixClient Library Overview与 Svix 托管服务的区别 二、运行服务器1、部署1.1 Docker1) 使用 Docker Compose2) 独立容器 1.2 预编译的二进制文件1.3 从源代码构建 2、运行时依赖项3、Redis/Valkey 注意事项持久性 Eviction 政策4、服务器配置4.1 配置文件…

【探索数据之美】“从基础到精通——深入解析数据结构与二叉树的秘密“

gitee代码获取链接&#xff1a;https://gitee.com/flying-wolf-loves-learning/data-structure.git 一、树的概念 1.1 概念简述 数据结构中的树是一种层次结构&#xff0c;它由节点&#xff08;node&#xff09;和边&#xff08;edge&#xff09;组成。每个节点都有零个或多…

微服务-Nacos-安装-集成SpringBoot

微服务-SpringCloud-ALibaba-Nacos Nacos 是阿里巴巴推出的 SpringCloud的组件 官网:什么是 Nacos 主要是为了解决微服务的架构中 服务治理的问题服务治理就是进行服务的自动化管理&#xff0c;其核心是服务的注册与发现。 服务注册&#xff1a;服务实例将自身服务信息注册…

用友GRP-U8 sqcxIndex.jsp SQL注入漏洞(XVE-2024-12560)

声明&#xff1a; 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任。 简介 用友GRP-U8是用友公司专注于国家电子政务事业&#…