当前位置: 首页 > 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.wxhsa.cn/company.asp?id=689

相关文章:

  • 前k个高频元素
  • 千靶日记-0002
  • [序列化/JSON/Java/Utils] JACKSON 概述
  • 完全弹性碰撞公式推导
  • reLeetCode 热题 100-2 字母异位词分组 扩展 - MKT
  • 第6篇、Kafka 高级实战:生产者路由与消费者管理
  • 3.4 页面替换算法 Page Replacement Algorithms
  • 学习心得
  • 反射对JVM的影响
  • reLeetCode 热题 100-2 字母异位词分组 - MKT
  • 分布式id
  • ipad装windows系统模拟器
  • [Java/SQL/Utils] SQL注释清除工具:SqlCommentStripper
  • 大模型面试题
  • CF2021D 题解 | dp
  • Caffeine缓存
  • Spark面试题清单
  • RocketMQ知识点梳理
  • Tekla坐标定位插件源码
  • 记录 使用PsExec启动System权限的WPF 程序
  • std::map的基本用法
  • 力扣20题 有效的括号
  • 2025年9月10日学习笔记之keil软件仿真调试
  • MySQL的explain使用
  • 力扣19题 删除链表的倒数第N个结点
  • 基于LZO的无损数据压缩IP,高性能压缩速率32Gbps,适用于FPGAASIC
  • IDEA创建文件时如何自动生成头部文档注释(简单、实用)
  • 一文带你吃透Power Platform,开启低代码开发新世界
  • docker compose 启动 redis 服务
  • MBR引导的OS Bootloader遇到被bios无视引导(自动重启)的解决办法