php网站验证码错误,英语不行如何编程做网站,怎么建设空包网站,长治网上制作网站文章目录1. 题目2. 解题1. 题目
题目链接 给定 n 个非负整数#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻#xff0c;且宽度为 1 。
求在该柱状图中#xff0c;能够勾勒出来的矩形的最大面积。 以上是柱状图的示例#xff0c;其中每个柱子的宽度为 1用来表示柱状图中各个柱子的高度。每个柱子彼此相邻且宽度为 1 。
求在该柱状图中能够勾勒出来的矩形的最大面积。 以上是柱状图的示例其中每个柱子的宽度为 1给定的高度为 [2,1,5,6,2,3]。 图中阴影部分为所能勾勒出的最大矩形面积其面积为 10 个单位。
2. 解题
类似题目 LeetCode 11. 盛最多水的容器双指针 LeetCode 42. 接雨水双指针、单调栈 LeetCode 85. 最大矩形DP难
单调递增栈遇到递减的进行处理最后未处理完的在末尾加个0遇到递减了处理剩余的栈内左侧的都比栈顶小当前的也比其小那么以栈顶为高的矩形能够扩展的宽度就知道了宽度 当前位置 减去 栈顶左侧位置再减1
class Solution {
public:int largestRectangleArea(vectorint h) {h.push_back(0);int i, n h.size(), maxArea 0, prevH, width;stackint 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