84.柱状图中最大的矩形
给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。
单调栈思路:最大矩形实际上就是寻找左右第一个低于自己的柱子。用一个从栈底到栈顶递增的单调栈即可。
那矩形面积就是:(right-left-1)*heights[mid] 。不过这里要注意,左右第一个柱子,没有更左或更右的低于自身的柱子。那就头尾加两个0好了。
以下是卡哥资料
● 84.柱状图中最大的矩形
给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。
单调栈思路:最大矩形实际上就是寻找左右第一个低于自己的柱子。用一个从栈底到栈顶递增的单调栈即可。
那矩形面积就是:(right-left-1)*heights[mid] 。不过这里要注意,左右第一个柱子,没有更左或更右的低于自身的柱子。那就头尾加两个0好了。
● 84.柱状图中最大的矩形