代码随想录刷题第60天

最后一题了。最后一题是柱状图中最大的矩形https://leetcode.cn/problems/largest-rectangle-in-histogram/,和接雨水遥相呼应的一道题,我们需要找到当前遍历数字左右两边第一个小于当前数字的值,通过保证单调栈中数字为递减顺序,来达到这一效果。此时栈顶元素,栈中下一元素与即将进栈元素构成了我们要求最大面积矩形的高度与宽度,其他逻辑与接雨水大致相同!

class Solution {
public:int largestRectangleArea(vector<int>& heights) {int result = 0;stack<int> st;heights.insert(heights.begin(), 0);heights.push_back(0);st.push(0);for (int i = 1; i < heights.size(); i++){if (heights[i] > heights[st.top()]){st.push(i);}else if (heights[i] == heights[st.top()]){st.pop();st.push(i);}else {while(!st.empty() && heights[i] < heights[st.top()]){int mid = st.top();st.pop();if (!st.empty()){int left = st.top();int right = i;int w = right - left - 1;int h = heights[mid];result = max(result, w * h);}}st.push(i);}}return result;}
};

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

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

相关文章

Hive集合函数 collect_set 和 collect_list 使用示例

Hive集合函数 collect_set 和 collect_list 使用示例 在Hive中&#xff0c; collect_set 和 collect_list 是用于收集数据并将其存储为集合的聚合 函数。以下是它们的语法&#xff1a; 1. collect_set(expression)- expression : 要收集的数据表达式。collect_set 函数用于将…

【软考】UML中的图之对象图

目录 1. 说明2. 图示3. 特性 1. 说明 1.对象图即object diagram2.展现了某一时刻一组对象以及它们之间的关系3.描述了在类图中所建立的事物的实例的静态快照4.对象图一般包括对象和链5.对象图展示的是对象之间关系&#xff0c;不存在交互&#xff0c;所以不是交互图 2. 图示 …

#微信小程序(一个emo文案界面)

1.IDE&#xff1a;微信开发者工具 2.实验&#xff1a;一个emo文案界面 &#xff08;1&#xff09;最好使用rpx &#xff08;2&#xff09;图片宽度占不满&#xff0c;在CSS中设置width为100% &#xff08;3&#xff09;imag图片全部为网页链接图片 3.记录 4.代码 index.htm…

【基础计算机网络2】物理层——物理层设备

【前言回顾】 【考纲内容】 物理层设备&#xff1a;中继器&#xff1b;集线器 一、物理层设备 1.1 中继器 描述&#xff1a;中继器是用来扩大网络规模的最简单廉价的互连设备&#xff0c;中继器两端的网络部分是网段&#xff0c;而不是子网。使用中继器连接的几个网段仍是一…

Jmeter+ant,ant安装与配置

1.ant含义 ant&#xff1a;Ant翻译过来是蚂蚁的意思&#xff0c;在我们做接口测试的时候&#xff0c;是可以用来做JMeter接口测试生成测试报告的工具 2.ant下载 下载地址&#xff1a;Apache Ant - Ant Manual Distributions download中选择ant 下载安装最新版zip文件 3.…

阿里云国际放行DDoS高防回源IP

如果源站服务器上设置了IP白名单访问控制&#xff08;如安全软件、安全组&#xff09;&#xff0c;由于设置了DDoS高防后&#xff0c;回源IP是高防回源IP段&#xff0c;您需要将DDoS高防的回源IP段的地址加入安全软件和安全组的白名单中&#xff0c;避免DDoS高防的回源流量被误…

导入fetch_california_housing 加州房价数据集报错解决(HTTPError: HTTP Error 403: Forbidden)

报错 HTTPError Traceback (most recent call last) Cell In[3], line 52 from sklearn.datasets import fetch_california_housing3 from sklearn.model_selection import train_test_split ----> 5 X, Y fetch_california_housing(retu…

Javascript编译原理简介

一. 传统编译语言编译原理 这一节主要简单了解下①传统编译语言的编译流程/Javascript涉及的角色和流程&#xff0c;与变量声明并赋值时所涉及到的②LHS查询和③RHS查询。 Javascript引擎进行编译的步骤和传统的编译语言非常相似&#xff0c;在某些环节可能比预想的要复杂。在…

acados_TypeError: __init__() got an unexpected keyword argument ‘winmode‘

TypeError: init() got an unexpected keyword argument ‘winmode’ 1. TypeError: init() got an unexpected keyword argument ‘winmode’ python vehicle_move_ocp.py执行完成以后,Traceback (most recent call last): File “vehicle_move_ocp.py”, line 172, in ac…

在虚拟环境中配置0.4.1版本的pytorch

家人们&#xff0c;使用下面方法安装pytorch的时候一定要记得关掉外网&#xff01;&#xff01;&#xff01; 我下午浪费了几个小时安不上&#xff0c;就是因为没有关掉外网&#xff01; QAQ 安装方法链接

发布组件到npm

1.环境准备&#xff0c;需要装好node&#xff0c;注册号npm账号,这里不做详解 2.创建编写组件和方法的文件夹package 3.在文件夹中创建需要定义的组件&#xff0c;并且加上name属性 //组件 <template><div><button>按钮组件</button></div> &…

VSSM VMamba实现

文章目录 VSSM维度变换初始化模型参数初始化模型搭建def_make_layerdef _make_downsample patch embed第一至四阶段分类器 VSSBlockdef __ init__ssm分支mlp分支 def forward VSSM Mamba实现可以参照之前的 mamba_minimal系列 论文地址&#xff1a; VMamba 论文阅读&#xff1…

css3常见选择器

使用工具 Visual Studio Code 1.CSS3基础选择器 1.1 标签选择器 1.2.1 标签选择器的语法 一个完整的HTML5页面是由很多不同的标签组成的&#xff0c;而标签选择器则决定标签应采用的CSS样式&#xff0c;语法如下:标签名{ 属性1&#xff1a;属性值1&#xff1b; 属性2&…

Vscode 修改C++版本

1. 首先要检查GCC版本&#xff0c;有的gcc版本过低会导致C版本升级不成功 可以用cmd&#xff0c;用gcc --version命令查看gcc版本 我这里就是gcc版本较低&#xff0c;不支持c17 需要先升级gcc版本 gcc与c对应的版本&#xff0c;大家可以在这位大佬的博客中看&#xff0c;写…

python 读取pdf 将每页转成jpg

需要安装fitz pip install PyMuPDF 这里我发现了问题,默认安装最新版本1.21.x 但是不支持大部分网上的api 所以分开两部分 1.21.x的 import fitz # PyMuPDF from PIL import Imagedef extract_images_from_tiff(tiff_path, output_folder):# 打开 TIFF 文件pdf_document f…

经典排序算法之计数排序|c++代码实现

引言 排序算法c实现系列第8弹——计数排序。 计数排序是理解起来相对简单的一个排序算法&#xff0c; 计数排序 计数排序&#xff08;Counting Sort&#xff09;是一种非比较型的排序算法&#xff0c;它的基本思想是统计待排序数组中每个元素的出现次数&#xff0c;然后根据…

基于grafana+elk等开源组件的 云服务监控大屏架构

本套大屏,在某云服务大规模测试环境,良好运行3年. 本文主要展示这套监控大屏的逻辑架构.不做具体操作与配置的解释. 监控主要分为三部分: 数据展示部分数据存储数据采集 1. 数据展示 数据展示方面主要使用grafana 2. 数据存储 根据数据种类和特性和用途的不同,本套监控采…

Intelli idea 自带maven路径和配置

自带maven位于&#xff1a;plugins/maven/lib/maven3 Mac配置maven环境变量&#xff1a; #maven export MAVEN_HOME/maven根路径 export PATH$MAVEN_HOME/bin:$PATH#刷新环境变量 source ~/.bash_profile#查看maven版本 mvn -version#查看依赖树 mvn dependency:tree 配置ma…

django-q轻量级定时任务制定

django-q ,celery&#xff0c;apschedule都可以作为python的选型&#xff0c;但是django-q更轻量级&#xff0c;可以定制想要的任务&#xff0c;通过消息中间件&#xff0c;来实现不太高并发的实现 官网介绍地址 django-q官网地址 本次测试的是python3.12版本 首先需要安装dja…

几何相互作用GNN预测3D-PLA

预测PLA是药物发现中的核心问题。最近的进展显示了将ML应用于PLA预测的巨大潜力。然而,它们大多忽略了复合物的3D结构和蛋白质与配体之间的物理相互作用,而这对于理解结合机制至关重要。作者提出了一种结合3D结构和物理相互作用的几何相互作用图神经网络GIGN,用于预测蛋白质…