LeetCode 84. 柱状图中最大的矩形(单调递增栈)
文章目录
- 1. 题目
- 2. 解题
1. 题目
题目链接
给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。
求在该柱状图中,能够勾勒出来的矩形的最大面积。
以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。
图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。
2. 解题
类似题目:
LeetCode 11. 盛最多水的容器(双指针)
LeetCode 42. 接雨水(双指针、单调栈)
LeetCode 85. 最大矩形(DP,难)
- 单调递增栈,遇到递减的进行处理,最后未处理完的,在末尾加个0(遇到递减了,处理剩余的)
- 栈内左侧的都比栈顶小,当前的也比其小,那么以栈顶为高的矩形能够扩展的宽度就知道了,
宽度 = 当前位置 减去 栈顶左侧位置,再减1
class Solution {public:int largestRectangleArea(vector<int>& h) {h.push_back(0);int i, n = h.size(), maxArea = 0, prevH, width;stack<int> s;//单调递增栈,存储下标for(i = 0; i < h.size(); ++i){while(!s.empty() && h[s.top()] > h[i])//前面大于我的,遇到下降{prevH = h[s.top()];s.pop();width = (s.empty() ? i : i-s.top()-1);maxArea = max(maxArea, prevH*width);}s.push(i);}return maxArea;}
};
20 ms 8.7 MB
LeetCode 84. 柱状图中最大的矩形(单调递增栈)相关推荐
- c语言力扣l最大矩形,leetcode 84柱状图中最大的矩形,利用单调栈求解l
利用单调了栈求解leetcode 84柱状图中最大的矩形 image image 利用单调递增栈的方式来实现,计算发生在每次弹出栈顶的操作过程中 单调递增栈的操作步骤 1.如果栈为空或者栈顶元素比入栈 ...
- 单调栈:leetcode 84. 柱状图中最大的矩形/85最大矩形
84. 柱状图中最大的矩形 遍历数组,以每一个元素作为高,向左右两边拓展,遇到第一个比该元素小的位置停下 图片源自leetcode力扣 一.暴力解法(超时) 遍历数组,以每一个元素作为高,向左右两边拓 ...
- java 柱状图 宽度_Java实现 LeetCode 84 柱状图中最大得矩形
84. 柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是柱状图的示例,其中每个柱子的 ...
- LeetCode 84.柱状图中最大的矩形
今天还是分享一道才刷过的题目, 柱状图中最大的矩形,这道题根上一篇我分享的接雨水类似,都是可以用双指针,动态规划(双指针加备忘录),单调栈来算 这道题的话三种方法都写了,双指针会超时,优化一下备忘录是 ...
- leetcode - 84. 柱状图中最大的矩形
给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [ ...
- LeetCode 84. 柱状图中最大的矩形(Largest Rectangle in Histogram)
题目描述: 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是柱状图的示例,其中每个柱子的宽度为 1,给定 ...
- LeetCode 85. 最大矩形(DP/单调递增栈,难)
文章目录 1. 题目 2. 解题 2.1 DP 2.2 单调递增栈 1. 题目 给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积. 示例: 输入: [[" ...
- 【LeetCode】【HOT】84. 柱状图中最大的矩形(栈)
[LeetCode][HOT]84. 柱状图中最大的矩形 文章目录 [LeetCode][HOT]84. 柱状图中最大的矩形 package hot;import java.util.ArrayDeq ...
- 用python 求矩形最大面积_LeetCode 84. 柱状图中最大的矩形 | Python
84. 柱状图中最大的矩形 题目 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是柱状图的示例,其中每个 ...
最新文章
- php udp发送和接收_php socket通信(tcp/udp)实例分析
- android 开启一个定时线程_Android中定时执行任务的3种实现方法
- 分享云及人工智能的一些学习资源和学习心得
- 公司间采购的后台配置备忘录
- 计算机应用技术 平面设计,全国信息化计算机应用技术水平教育考试试卷 平面设计师...
- Spring 自动装配 ‘byType’
- jsonobject转list集合_怎样优雅的操作集合,CollectionUtils工具类正确使用姿势
- 【工程项目经验】VMware The path is not a valid path to the 3.10.0-229.el7.x86_64
- 标注工具——yarn的学习笔记
- java实战 ——分类模块的开发
- 原理探究——空间平滑MUSIC算法
- Flutter格式化电话号码
- 传导EMI抑制-π型滤波器设计
- DPDK Release 20.08
- 许晓斌_Maven实战(五)——自动化Web应用集成测试
- 硬盘主分区和逻辑驱动器的区别
- 告别传统机房:3D 机房数据可视化实现智能化与VR技术的新碰撞
- 哈工程和杭电计算机,哈工程算名校吗?为什么说千万别来哈工程?
- java interrupt详解_Java线程源码解析之interrupt
- selenium——鼠标操作ActionChains:点击、滑动、拖动