当前位置: 首页 > news >正文

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

Problem: 84. 柱状图中最大的矩形
在这里插入图片描述

文章目录

  • 思路
  • 复杂度
  • Code

思路

👨‍🏫 参考地址
在这里插入图片描述

在这里插入图片描述

复杂度

时间复杂度: O ( n ) O(n) O(n)

空间复杂度: O ( n ) O(n) O(n)

Code

class Solution {public static int largestRectangleArea(int[] height){Stack<Integer> stack = new Stack<Integer>();// 单调递增栈 存的是下标int n = height.length;int[] h = new int[n + 2];//加两 哨兵节点,因为是单调递增栈 所以 加最小值h[0] = 0;//前哨兵System.arraycopy(height, 0, h, 1, n);//把 height 数组 从 0 开始 复制长度为 [1,n] (n-1 + 1)的长度到 h 数组h[n + 1] = 0;//后哨兵int m = n + 2;int ans = 0;for (int i = 0; i < m; i++){while (!stack.isEmpty() && h[i] < h[stack.peek()]){int cur = stack.pop();//这是区间的最小值,现在 i 并没有入栈// 至此:h(l,r)开区间内都是 大于 h[cur]int l = stack.peek() + 1;// 当前栈顶为左边的第一个小于 h[cur] 的值 的下标ans = Math.max(ans, (i - l) * h[cur]);}
//			stack.push(i);stack.add(i);}return ans;}
}

相关文章:

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

Problem: 84. 柱状图中最大的矩形 文章目录 思路复杂度Code 思路 &#x1f468;‍&#x1f3eb; 参考地址 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( n ) O(n) O(n) Code class Solution {public static int largestRectangleArea(int[] height){Stack&l…...

018 用户交互Scanner

什么是Scanner对象 next()方法 // 声明输入对象 Scanner scanner new Scanner(System.in);System.out.println("next()方法接收&#xff1a;"); if (scanner.hasNext()) {// 输入 Hello worldString str1 scanner.next();// 输出 HelloSystem.out.println(str1); }…...

华为HCIE课堂笔记第十七章 广域网互联技术

第十七章 广域网互联技术 17.1 GRE VPN GRE VPN用于分支与分支通过私网地址互联&#xff0c;通过在私网报文上添加一个GRE的头部&#xff0c;以及添加一层外层的IP头部&#xff0c;通过外层头部中的目IP地址使得报文到达隧道对端接口&#xff0c;并解封装得到原始的私网报文…...

代码随想录算法训练营第17天(二叉树5)| 找树左下角的值二叉树的路径总和从中序与后序遍历序列构造二叉树从前序与中序遍历序列构造二叉树

513.找树左下角的值 leetcode题目地址 题目链接/文章讲解/视频讲解 如果使用递归法&#xff0c;如何判断是最后一行&#xff1a; 其实就是深度最大的叶子节点一定是最后一行。 //迭代法 class Solution { public:int findBottomLeftValue(TreeNode* root) {queue<TreeNod…...

代码随想录 Leetcode106. 从中序与后序遍历序列构造二叉树

题目&#xff1a; 代码&#xff08;首刷看解析 2024年1月30日&#xff09;&#xff1a; class Solution { public:TreeNode* recursion(vector<int>& inorder, vector<int>& postorder, int longthOfLeft, int longthOfRight) {if (postorder.size() 0) …...

Log4j Log4j2

前言 今天抽时间来把这个日志框架学学&#xff0c;毕竟经常用&#xff0c;虽然不用自己写&#xff0c;但是书到用时方恨少&#xff0c;技多不压身。而且最近我的 GUI 软件中有一个关于日志问题的希望学完能够感觉解决掉。 Log4j & Log4j2 Log4j2 是 Log4j 的升级版&#x…...

C语言——如何进行文件操作

大家好&#xff0c;我是残念&#xff0c;希望在你看完之后&#xff0c;能对你有所帮助&#xff0c;有什么不足请指正&#xff01;共同学习交流 本文由&#xff1a;残念ing原创CSDN首发&#xff0c;如需要转载请通知 个人主页&#xff1a;残念ing-CSDN博客&#xff0c;欢迎各位→…...

python中for循环的几个现象

1. 运行如下代码 l [{}, {}, {}] for k in l:k[1] 1 print(l) 输出为 [{1: 1}, {1: 1}, {1: 1}]2. 运行如下代码 l [{}, {}, {}] for k in l:k {1:1} print(l) 输出为 [{}, {}, {}] 3. 运行如下代码 l [1,2,3] for k in l:k k * 2 print(l)输出为 [1, 2, 3…...

openssl3.2 - 测试程序的学习 - 准备openssl测试专用工程的模板

文章目录 openssl3.2 - 测试程序的学习 - 准备openssl测试专用工程的模板概述笔记工程中需要的openssl的库实现补充 - 最终的模板工程END openssl3.2 - 测试程序的学习 - 准备openssl测试专用工程的模板 概述 openssl3.2 - 测试程序的学习 整了几个test.c, 每开一个新的测试工…...

Delphi.cz采访​Embarcadero​捷克共和国办事处经理:理查德·库巴特 - 第一部分

Embarcadero捷克办事处主任理查德库巴特&#xff08;Richard Kubt&#xff0c;55 岁&#xff09;接受了我的采访。 Radek Červinka (RČ)&#xff1a;库巴特先生您好&#xff0c;感谢您抽出时间访问 delphi.cz。 一开始&#xff1a;我在某处听说您是一名程序员&#xff0c;从…...

AI投资或成科技裁员罪魁祸首

最近的科技裁员让许多人对这个行业的稳定性产生了疑问。然而&#xff0c;仔细观察发现&#xff0c;这些裁员并不是经济困境的迹象&#xff0c;而是科技公司为了重新调整优先事项并投资未来而进行的战略举措。科技行业正投入数十亿美元用于人工智能&#xff08;AI&#xff09;&a…...

解读BEVFormer,新一代自动驾驶视觉工作的基石

文章出处 BEVFormer这篇文章很有划时代的意义&#xff0c;改变了许多视觉领域工作的pipeline[2203.17270] BEVFormer: Learning Birds-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers (arxiv.org)https://arxiv.org/abs/2203.17270 BEV …...

【React教程】(1) React简介、React核心概念、React初始化

目录 ReactReact 介绍React 特点React 的发展历史React 与 Vue 的对比技术层面开发团队社区Native APP 开发 相关资源链接 EcmaScript 6 补充React 核心概念组件化虚拟 DOM 起步初始化及安装依赖Hello World React React 介绍 React 是一个用于构建用户界面的渐进式 JavaScrip…...

云计算中的弹性是什么?

云弹性是指当客户需求增加或减少时&#xff0c;自动从数据中心配置和取消配置资源。这使得云资源(包括计算、存储和内存资源)能够根据需求变化快速重新分配。CPU/处理、内存、输入/输出带宽和存储容量等计算资源可以根据需要增加或减少&#xff0c;而不会影响系统性能。 它旨在…...

Vue3基础:pnpm是什么?npm和pnpm的区别?如何使用pnpm?

pnpm 是一个流行的 JavaScript 包管理器&#xff0c;类似于 npm 和 yarn。它是 performant npm 的缩写&#xff0c;意在表明它是一个更高效的 npm 替代品。pnpm 的主要特点和优势包括&#xff1a; 高效的存储空间使用 pnpm 使用称为“内容寻址存储”的机制来存储 npm 包。这意…...

vue中父组件直接调用子组件方法(通过ref)

目录 1、vue2 中&#xff0c;父组件调用子组件的方法 2、vue3 中&#xff0c;父组件调用子组件的方法 1、vue2 中&#xff0c;父组件调用子组件的方法 在Vue 2中&#xff0c;父组件可以通过使用ref属性来引用子组件的实例&#xff0c;然后通过该实例调用子组件的方法。 首先…...

Gunicorn性能优化:提升Python Web应用的服务效率

在Python Web开发中&#xff0c;Gunicorn作为WSGI HTTP服务器&#xff0c;常常作为Web应用&#xff08;如Django或Flask&#xff09;与反向代理或负载均衡器之间的桥梁。为了充分发挥其性能&#xff0c;本文将提供一些实用的Gunicorn配置建议。 Gunicorn架构 Gunicorn采用了预…...

如何使用ssh key免密码登录服务器?

以下是使用密钥对免密码登录服务器的具体指令操作步骤&#xff1a; 步骤一&#xff1a;生成密钥对 在本地电脑上打开终端或命令提示符&#xff0c;运行以下命令生成密钥对&#xff1a; ssh-keygen -t rsa -C "your_emailexample.com" 该命令会提示您选择保存密钥…...

macos Android平台签名证书(.keystore)

一、申请appid的使用说明&#xff08;有appid的请忽略申请appid&#xff09; 创建应用 申请的appid在源码视图填写后会自动生成一个对应的包名 ⚠️注意&#xff1a;申请appid的时候应用名称和项目名称保持一致。 二、 Android如何使用自用证书进行打包 1.找到安装jdk的路径…...

Kotlin快速入门系列2

Kotlin的基本数据类型 Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于 Java 的是&#xff0c;字符不属于数值类型&#xff0c;是一个独立的数据类型。 Java和kotlin数据类型对照如下&#xff1a; Java基本数据类型 Kotlin对象数据类型 数据类…...

跨游戏模组协同:XXMI启动器智能管理解决方案

跨游戏模组协同&#xff1a;XXMI启动器智能管理解决方案 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 当你同时游玩《原神》《崩坏&#xff1a;星穹铁道》《鸣潮》等多款二次元…...

Qwen3.5-9B应用场景:高校AI教学——图像题自动批改+实验报告生成

Qwen3.5-9B应用场景&#xff1a;高校AI教学——图像题自动批改实验报告生成 1. 高校教学场景的AI解决方案 在高校计算机和人工智能相关课程的教学中&#xff0c;教师常常面临两大挑战&#xff1a;一是需要批改大量学生提交的图像识别作业&#xff0c;二是需要指导学生完成规范…...

Notepad--跨平台文本编辑器:3个简单技巧提升长期使用性能

Notepad--跨平台文本编辑器&#xff1a;3个简单技巧提升长期使用性能 【免费下载链接】notepad-- 一个支持windows/linux/mac的文本编辑器&#xff0c;目标是做中国人自己的编辑器&#xff0c;来自中国。 项目地址: https://gitcode.com/GitHub_Trending/no/notepad-- N…...

烽火HG680-KA刷机全攻略:海思MV310芯片优化+ADB免拆教程(附固件包)

烽火HG680-KA深度优化指南&#xff1a;解锁海思MV310芯片的隐藏潜能 当你手中的烽火HG680-KA机顶盒开始出现卡顿、存储不足或功能受限时&#xff0c;或许该考虑给它来一次彻底的"系统大扫除"了。作为一款搭载海思MV310芯片的主流设备&#xff0c;其硬件潜力远超市面上…...

深度解析:OpenClaw集成MiniMax 2.1遭遇HTTP 401?三步定位+架构级解决方案

–## 一、问题现象与背景 在2026年开源AI智能体工具百花齐放的今天&#xff0c;OpenClaw&#xff08;前身为Clawdbot/Moltbot&#xff09;凭借"本地优先、多平台兼容、高度可定制"的核心优势&#xff0c;成为开发者构建专属AI助手的首选框架。然而&#xff0c;当许多…...

终极多店铺管理指南:如何在Fecshop中轻松运营多个独立商城

终极多店铺管理指南&#xff1a;如何在Fecshop中轻松运营多个独立商城 【免费下载链接】yii2_fecshop Yii2_fecshop是一个基于Yii2框架的电商系统&#xff0c;适合用于搭建在线商城、B2C网站等。特点&#xff1a;功能丰富、易于扩展、支持多种支付方式。 项目地址: https://g…...

后端开发效率提升:Phi-4-mini-reasoning自动生成数据库访问层代码与API文档

后端开发效率提升&#xff1a;Phi-4-mini-reasoning自动生成数据库访问层代码与API文档 1. 为什么我们需要自动化代码生成 每个后端开发者都经历过这样的痛苦时刻&#xff1a;新建一个项目后&#xff0c;花大量时间编写几乎雷同的CRUD代码。这些重复性工作不仅枯燥乏味&#…...

Windows 11安装终极指南:5分钟绕过所有硬件限制

Windows 11安装终极指南&#xff1a;5分钟绕过所有硬件限制 【免费下载链接】MediaCreationTool.bat Universal MCT wrapper script for all Windows 10/11 versions from 1507 to 21H2! 项目地址: https://gitcode.com/gh_mirrors/me/MediaCreationTool.bat 还在为Wind…...

Qwen2.5-14B-Instruct实战部署:像素剧本圣殿8-Bit Pro版本CUDA加速实测报告

Qwen2.5-14B-Instruct实战部署&#xff1a;像素剧本圣殿8-Bit Pro版本CUDA加速实测报告 1. 项目概览 像素剧本圣殿&#xff08;Pixel Script Temple&#xff09;是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。这款工具将先进的大语言模型推理能力与独特的8-Bit…...

SmallThinker-3B开源镜像实操:边缘部署+草稿加速双场景落地指南

SmallThinker-3B开源镜像实操&#xff1a;边缘部署草稿加速双场景落地指南 1. 引言&#xff1a;为什么你需要关注SmallThinker-3B&#xff1f; 如果你正在寻找一个既能在边缘设备上流畅运行&#xff0c;又能作为大模型“加速器”的AI工具&#xff0c;那么SmallThinker-3B-Pre…...