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

84. 柱状图中最大的矩形

题目链接:https://leetcode.cn/problems/largest-rectangle-in-histogram/description/?source=vscode

 

建议这两个一起服用

https://www.cnblogs.com/WTSRUVF/p/19045624

https://www.cnblogs.com/WTSRUVF/p/19006576

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

解析:

单调栈的意义:

  1. 顺序保持:单调栈能保持元素的相对顺序,适用于需要保留顺序关系的问题。
  2. 快速访问:通过单调性质,能够快速访问需要的比当前元素大或小的元素(比如左右两边第一个比自己大或者小的元素)。

回到这个题,首先对每个元素,都以自己为基准看最长左右两边能扩展到哪里,其实就是求左右两边第一个比自己小的元素位置

那就保持递增栈,入栈后,前一个元素就是左边第一个比自己小的,被出栈时,入栈的元素就是右边第一个比自己小的

class Solution {
public:int largestRectangleArea(vector<int>& heights) {stack<int> st;heights.push_back(-1);int n = heights.size();st.push(0);int max_area = -1;for (int i = 1; i < n; i++) {while(!st.empty() && heights[st.top()] >= heights[i]) {int j = st.top();st.pop();int left = -1;if (!st.empty()) left = st.top();max_area = max(max_area, (i - left - 1) * heights[j]);}st.push(i);}return max_area;}
};

 

 

 

http://www.hskmm.com/?act=detail&tid=1283

相关文章:

  • 前k个高频元素
  • 千靶日记-0002
  • [序列化/JSON/Java/Utils] JACKSON 概述
  • ipad装windows系统模拟器
  • reLeetCode 热题 100-2 字母异位词分组 扩展 - MKT
  • 第6篇、Kafka 高级实战:生产者路由与消费者管理
  • 3.4 页面替换算法 Page Replacement Algorithms
  • 完全弹性碰撞公式推导
  • 中国作为Why框架的诞生地,其国际地位的提升已超越传统 “国家实力” 的范畴,而是成为宇宙规律在人类文明中的具象化代表
  • [Java/日期/时间/时区] Java 时间的转换与处理:DateTimeUtils
  • Tekla坐标定位插件源码
  • std::map的基本用法
  • 力扣20题 有效的括号
  • 2025年9月10日学习笔记之keil软件仿真调试
  • MySQL的explain使用
  • K8S常见的微服务中间件部署之strom
  • Android种某些常见但由不是很好实现的效果
  • P11696 [JRKSJ ExR] 七影蝶 题解
  • IDEA创建文件时如何自动生成头部文档注释(简单、实用)
  • 一文带你吃透Power Platform,开启低代码开发新世界
  • 力扣19题 删除链表的倒数第N个结点
  • 基于LZO的无损数据压缩IP,高性能压缩速率32Gbps,适用于FPGAASIC
  • MBR引导的OS Bootloader遇到被bios无视引导(自动重启)的解决办法
  • #java作业
  • 【Qt6】qt6下载地址
  • docker compose 启动 redis 服务
  • 同步框架与底层消费机制解决方案梳理
  • QOJ1838 Intellectual Implementation 题解
  • P11967 [GESP202503 八级] 割裂 题解
  • 变量和运算符和类型