算法训练营Day60(单调栈)

84.柱状图的最大矩形

84. 柱状图中最大的矩形 - 力扣(LeetCode)

注意首尾加0的细节就可

class Solution {
   
    public int largestRectangleArea(int[] heights) {
       
        Deque<Integer> stack = new LinkedList<>();
        int[] newHeight = new int[heights.length + 2];
        System.arraycopy(heights, 0, newHeight, 1, heights.length);
        newHeight[heights.length+1] = 0;
        newHeight[0] = 0;
        int res = 0;
        for(int i = 0;i<newHeight.length;i++){
            while(!stack.isEmpty()&&newHeight[i]<newHeight[stack.peek()]){
                int right = i;
                int mid = stack.pop();
                int left = stack.peek();
                int h = newHeight[mid];
                int w = right-left-1;
               
                res = Math.max(res,h*w);
            }
            stack.push(i);
        }
        return res;
    }
}

 

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

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

相关文章

EasyCode使用指南—MybatisPlus模板

目录 1、下载EasyCode插件2、配置EasyCode2.1、配置作者名称2.2、配置代码内容生成模板&#xff08;模板内容见文末&#xff09;2.3、连接数据库2.4、使用代码内容生成模板 模板内容&#xff1a;controller.java.vmdto.java.vmmapper.java.vmmapper.xml.vmpojo.java.vmservice.…

ES的一些名称和概念总结

概念 先看看ElasticSearch的整体架构&#xff1a; 一个 ES Index 在集群模式下&#xff0c;有多个 Node &#xff08;节点&#xff09;组成。每个节点就是 ES 的Instance (实例)。每个节点上会有多个 shard &#xff08;分片&#xff09;&#xff0c; P1 P2 是主分片, R1 R2…

Nginx 主动检查 被动检查

被动检查 proxy_next_upstream http {upstrean httpget {//max_fail5,失败5词&#xff0c;直接下线 down&#xff0c;//fail_timeout10s, 10s之后 重新上线 up//fail_timeout10s, max_fail5,5次失败在10s内&#xff0c;下线&#xff0c;server IP:80 max_fails5 fail_time…

DDOS攻击有哪几种类型

DDOS攻击“分布式拒绝服务”是目前网站服务器所常见的恶意攻击&#xff0c;其原理是通过控制大量肉鸡(虚假流量)访问网站服务器消耗带宽、内存等资源&#xff0c;其目的是使得网站服务器无法正常的访问&#xff0c;其后果是直接导致企业业务受损&#xff0c;数据丢失&#xff0…

墨水屏会议预约门牌,免布线方案会议室新选择!

墨水屏会议预约门牌是一种新型的会议室管理设备&#xff0c;它采用墨水屏技术&#xff0c;可实时显示会议信息、预约状态等&#xff0c;为会议室的管理和使用带来了极大的便利。与传统布线门牌相比&#xff0c;墨水屏会议预约门牌具有许多优点&#xff0c;如长寿命、低功耗、维…

万物简单AIoT 端云一体实战案例学习 之 空气质量检测系统

学物联网,来万物简单IoT物联网!! 下图是本案的3步导学,每个步骤中实现的功能请参考图中的说明。 1、简介 环境污染、空气污染是人类一直所关心并且讨论的永恒话题,人们对优质的环境和健康的身体非常向往。因此,如果有一种可以检测周围环境的空气质量的设备并且环境数据…

Cybellum—信息安全测试工具

产品概述 由于软件和数据在汽车上的使用越来越多&#xff0c;汽车越来越“智能化”&#xff0c;汽车行业面临着重大的信息安全挑战。2021年8月&#xff0c;ISO/SAE 21434正式发布&#xff0c;标准中对汽车的信息安全提出了规范化的要求&#xff0c;汽车信息安全不容忽视。 Cyb…

最新详细eclipse下载、安装、汉化教程

一、下载eclipse安装包 首先进入 eclipse官网 如下&#xff1a; 这里面有很多版本&#xff1b;我们小白一般选择第二个&#xff0c;向下滑动&#xff1b; 点击符合自己系统的版本。 这里我们切换镜像下载&#xff0c;一般选择离你最近的地址下载。 我建议选择大连东软信息学…

燃烧的指针(二)

&#x1f308;个人主页&#xff1a;小田爱学编程 &#x1f525; 系列专栏&#xff1a;c语言从基础到进阶 &#x1f3c6;&#x1f3c6;关注博主&#xff0c;随时获取更多关于c语言的优质内容&#xff01;&#x1f3c6;&#x1f3c6; &#x1f600;欢迎来到小田代码世界~ &#x…

YOLOv8改进 | Conv篇 | 结合Dual思想利用HetConv创新一种全新轻量化结构CSPHet(参数量下降70W)

一、本文介绍 本文给大家带来的改进机制是我结合Dual的思想利用HetConv提出一种全新的结构CSPHet,我们将其用于替换我们的C2f结构,可以将参数降低越75W,GFLOPs降低至6.6GFLOPs,同时本文结构为我独家创新,全网无第二份,非常适合用于发表论文,该结构非常灵活,利用Dual卷…

pip 安装出现报错 SSLError(SSLError(“bad handshake

即使设置了清华源&#xff1a; pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simplepip 安装包不能配置清华源&#xff0c;出现报错: Retrying (Retry(total2, connectNone, readNone, redirectNone, statusNone)) after connection broken by ‘SSLE…

【DDD】学习笔记-控制软件复杂度的原则

虽然说认识到软件系统的复杂本性&#xff0c;并不足以让我们应对其复杂&#xff0c;并寻找到简化系统的解决之道&#xff1b;然而&#xff0c;如果我们连导致软件复杂度的本源都茫然不知&#xff0c;又怎么谈得上控制复杂呢&#xff1f;既然我们认为导致软件系统变得复杂的成因…

Chain-of-Thought Prompting Elicits Reasoning in Large Language Models导读

通过生成一系列中间推理步骤&#xff08;即“思维链”&#xff09;显著提高大型语言模型进行复杂推理的能力 这篇论文探讨了如何通过生成一系列中间推理步骤&#xff08;即“思维链”&#xff09;显著提高大型语言模型进行复杂推理的能力。研究人员使用一种简单的方法——思维…

图算法 - 最短路径算法 (dijkstra) 迪克斯特拉算法

解决问题: 图中某个顶点到某一个顶点的最短路径 适用场景: 查找带权图的最短路径 代码设计: 首先定义一张图(邻接矩阵,二维数组方式实现) 生成一张图 迪克斯特拉算法实现 采用贪婪的方式,每次获取最短的一条路径,作为下次遍历的起点 使用visited 记录被访问过的节点避免…

水文模型SWMM与LisFlood耦合(pdf文档、软件见资源)

总技术路线图 INP生成图解 文献&#xff1a;面向服务的Web-SWMM构建研究 regardingINP为ArcGIS Pro项目 1.SWMM模型数据准备与参数设置 1.子汇水区 文件位于&#xff1a;beforeGenerateINP/generateSub.py&#xff08;一级划分&#xff09; 问题&#xff1a; 水文分析阈值划…

C#,数据检索算法之跳跃搜索(Jump Search)的源代码

数据检索算法是指从数据集合&#xff08;数组、表、哈希表等&#xff09;中检索指定的数据项。 数据检索算法是所有算法的基础算法之一。 本文提供跳跃搜索的源代码。 1 文本格式 using System; namespace Legalsoft.Truffer.Algorithm { public static class ArraySe…

Qt编写手机端视频播放器/推流工具/Onvif工具

一、视频播放器 同时支持多种解码内核&#xff0c;包括qmedia内核&#xff08;Qt4/Qt5/Qt6&#xff09;、ffmpeg内核&#xff08;ffmpeg2/ffmpeg3/ffmpeg4/ffmpeg5/ffmpeg6&#xff09;、vlc内核&#xff08;vlc2/vlc3&#xff09;、mpv内核&#xff08;mpv1/mp2&#xff09;、…

go slice 扩容实现

基于 Go 1.19。 go 的切片我们都知道可以自动地进行扩容&#xff0c;具体来说就是在切片的容量容纳不下新的元素的时候&#xff0c; 底层会帮我们为切片的底层数组分配更大的内存空间&#xff0c;然后把旧的切片的底层数组指针指向新的内存中&#xff1a; 目前网上一些关于扩容…

【DDD】学习笔记-软件开发团队的沟通与协作

领域驱动设计的核心是“领域”&#xff0c;因此要运用领域驱动设计&#xff0c;从一开始就要让团队走到正确的点儿上。当我们组建好了团队之后&#xff0c;应该从哪里开始&#xff1f;不是 UI 原型设计、不是架构设计、也不是设计数据库&#xff0c;这些事情虽然重要但却非最高…

Linux常见的管理命令

1. whoami 作用&#xff1a; 显示出当前有效的用户名称&#xff0c;Linux是多用户多任务 语法&#xff1a;whoami(选项) 选项&#xff1a; --help&#xff1a;在线帮助 --version&#xff1a;显示版本信息和退出 场景使用&#xff1a; 1. 当用户想要查看当前登录系统的用户…