力扣 柱形图中最大的矩形 单调栈

84. 柱状图中最大的矩形 - 力扣(LeetCode)    这篇文章讲的非常棒

class Solution {
public:
    int largestRectangleArea(vector<int>& heights) {
    int n1=heights.size(),ans=0,i;
    新建数组,长度是heights.size()+2
     第一位和最后一位为0 哨兵
    vector<int>neww(n1+2,0);
    int n2=neww.size();
    neww[0]=0;neww[n2-1]=0;
    stack<int>st;
    拷贝
    for(i=1;i<=n1;i++)
    neww[i]=heights[i-1];
    for(i=0;i<n2;i++)
  { 只要栈不为空(左边界),并且当前遍历的数据小于栈顶元素,则说明找到了右边界
     while(!st.empty()&&neww[i]<neww[st.top()]){
     int cur=st.top(); st.pop();
     int height=neww[cur];
 栈顶元素pop出后,新栈顶元素就是其左边界,因为栈中存的数字是递增的,其左边界存的坐标一定是当前高度不能去的
    int left=st.top();
    右边界就是当前下标
     int right=i;
     int width=right-left-1;
     ans=max(ans,width*height);
     }   
     st.push(i);
    }
    return ans;}};

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

四种最新算法(小龙虾优化算法COA、螳螂搜索算法MSA、红尾鹰算法RTH、霸王龙优化算法TROA)求解机器人路径规划(提供MATLAB代码)

一、机器人路径规划介绍 移动机器人&#xff08;Mobile robot&#xff0c;MR&#xff09;的路径规划是 移动机器人研究的重要分支之&#xff0c;是对其进行控制的基础。根据环境信息的已知程度不同&#xff0c;路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或…

如果用java使用es

添加依赖 如何连接es客户端 RestHighLevelClient 代表是高级客户端 其中hostname&#xff1a;es的服务器地址&#xff0c;prot端口号 &#xff0c;scheme&#xff1a;http还是https 如果不在使用es可以进行关闭&#xff0c;可以防止浪费一些资源 java如何创建索引&#xff1…

Python PyQt5

实现界面开发&#xff0c;与tkinter功能一致&#xff0c;网上已有详细资料&#xff0c;此处仅记录自己的代码&#xff1a; 文章目录 1. 实操1.1 main.py1.2. 窗体模块代码1.3. 页面效果 2. 参考资料2.1. PyQt5 参考资料2.2. tkinter 参考资料 3. 安装注意事项3.1. 下载3.2 Pyc…

双碳目标下基于“遥感+”融合技术在碳储量、碳收支、碳循环等多领域监测与模拟

原文链接&#xff1a;双碳目标下基于“遥感”融合技术在碳储量、碳收支、碳循环等多领域监测与模拟https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247598506&idx6&snde95898e0b6017271a3b0bfbacc1f034&chksmfa82004dcdf5895bf44730ef2e6a5e8ee590cca1a…

Windows server 2012 R2系统怎么显示桌面图标

当我们在使用Windows server2012 R2服务器计算机时&#xff0c;为了方便&#xff0c;我们可以添加桌面图标。下面就给大家分享一下添加桌面图标的方法&#xff1b; 操作步骤如下&#xff1a; 1、第一步&#xff0c;我们打开server服务器&#xff0c;就可以看到如下画面&#x…

【python】python种子数据集——聚类分析建模(源码+数据集)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

如何做接口测试?

今天来聊聊接口测试&#xff0c;现在是2024年了&#xff0c;打开招聘网站随便点开一个招聘帖子&#xff0c;几乎都可以看到岗位JD要求写着有接口测试经验优先。其重要性可见一斑&#xff01; 目前&#xff0c;凡是好一点稍具规模的公司哪怕是大厂外包也几乎都要求会接口测试&a…

深度学习入门指南:从理论到实践

深度学习如何入门 深度学习是机器学习的一个分支&#xff0c;它通过模拟人脑神经网络的结构和功能来实现对数据的学习和理解。近年来&#xff0c;深度学习在图像识别、自然语言处理、语音识别等领域取得了显著的成果&#xff0c;越来越受到人们的关注。如果你想入门深度学习&a…

【LLAVA】Llava中在数据集制作过程中是怎么从CC3M中过滤出595K数据的?为什么这样做?

原文&#xff1a;CC3M. We extract noun-phrases using Spacy for each caption over the whole cc3m dataset, and count the frequency of each unique noun-phrase. We skip noun-phrases whose frequency is smaller than 3, as they are usually rare combinations concep…

[MySQL实战] 如何定义唯一约束(唯一索引)

文章目录 一、什么是唯一约束二、如何定义唯一约束2.1、建表时定义唯一约束--方法12.2、建表时定义唯一约束--方法22.3、为已创建的表定义唯一约束 三、删除唯一约束四、问题4.1、问题1&#xff1a;如何为多个列定义唯一约束&#xff1f; 五、总结 一、什么是唯一约束 唯一约束…

速通Markdown基础写法(含安装Typora)

什么是Markdown Markdown是一种轻量级标记语言&#xff0c;它允许人们使用易读易写的纯文本格式来编写文档&#xff0c;然后转换成格式丰富的HTML页面。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。 Markdown的语法简洁明了、学习容易&#xff0c;而且功能比纯文…

(2024,Mamba,DiT,之字扫描与空间连续性)ZigMa:之字形 Mamba 扩散模型

ZigMa: Zigzag Mamba Diffusion Model 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 1. 简介 2. 相关工作 3. 方法 3.1 背景&#xff1a;状态空间模型 3.2 扩散主干&…

Springboot开发中可能遇到的问题

SpringBoot特征&#xff1a; 1. SpringBoot Starter&#xff1a;他将常用的依赖分组进行了整合&#xff0c;将其合并到一个依赖中&#xff0c;这样就可以一次性添加到项目的Maven或Gradle构建中。 2,使编码变得简单&#xff0c;SpringBoot采用 JavaConfig的方式对Spring进行配置…

全网最靠谱的短网址平台,你知道几个?

在当今互联网时代&#xff0c;短网址平台成为了人们分享链接的常用工具。它们不仅可以将冗长的网址压缩为简洁的短链接&#xff0c;还能提供更多的功能和优势。在众多的短网址平台中&#xff0c;有几个平台以其可靠性和出色的性能脱颖而出。今天&#xff0c;我们就来介绍几个全…

ssh介绍

1. 什么是SSH&#xff1f; SSH是一种网络协议&#xff0c;用于计算机之间的加密登录。最早的时候&#xff0c;互联网通信都是明文通信&#xff0c;一旦被截获&#xff0c;内容就暴露无疑。1995年&#xff0c;芬兰学者Tatu Ylonen设计了SSH协议&#xff0c;将登录信息全部加密&…

多线程基础 -概念、创建、等待、分离、终止

文章目录 一、 线程概念1. 什么是线程2. 线程的优点3.线程的缺点4. 线程异常5. 线程用途 二、 Linux进程VS线程1. 进程和线程2. 进程和线程的地址空间3. 进程和线程的关系 三、Linux线程控制1. POSIX线程库2. 线程创建3. 线程ID及进程地址空间布局4. 线程终止5. 线程等待6. 线程…

【pcolor数据可视化】Matlab vs. Python

1、Matlab代码及结果 代码 clear;clc load(.\nclcolormap.mat)sl [0,50,100,200,500,0]; el [50,100,200,500,1000,200];for i 1:length(sl)file [..\data\static_result\VIS_Min-,num2str(sl(i)),to,num2str(el(i)),_yearly.npy];data readNPY(file);maskreadNPY(.\mas…

基于springboot的mysql实现读写分离

前言: 首先思考一个问题:在高并发的场景中,关于数据库都有哪些优化的手段&#xff1f;常用的有以下的实现方法:读写分离、加缓存、主从架构集群、分库分表等&#xff0c;在互联网应用中,大部分都是读多写少的场景,设置两个库,主库和读库,主库的职能是负责写,从库主要是负责读…

FloodFill算法——图像渲染

文章目录 题目解析题目内容解读 算法解析代码解析 题目解析 首先我们先来看看题目&#xff1a;图像渲染 题目内容解读 我们来解读一下题目内容这个题目的意思其实就是有一个如下图所示的二维矩阵 这个题目的意思在这类题目中也是非常标准的&#xff0c;就是给我们一个二维数…

yaml 语法和在线解析工具

文章目录 在线解析工具1. 简介2. 语法规则3. 数据类型3.1 数组&#xff1a;3.2对象&#xff1a;3.3 标量3.4 复合结构3.5 锚点3.5.1 单个锚点3.5.6 多个锚点 3.6 引号 参考 在线解析工具 工具1 工具2 1. 简介 Yaml是一种可读性高的数据标记语言&#xff0c;Yaml文件是一种配…