文档讲解:代码随想录 (programmercarl.com)
视频讲解:代码随想录的个人空间-代码随想录个人主页-哔哩哔哩视频 (bilibili.com)
LeetCode 84. 柱状图中最大的矩形
题目链接:84. 柱状图中最大的矩形 - 力扣(LeetCode)
实现代码:
class Solution {
public:
int largestRectangleArea(vector<int>& heights) {
int res=0;
stack<int>st;
heights.insert(heights.begin(), 0); // 数组头部加入元素0
heights.push_back(0); // 数组尾部加入元素0
for(int i=0;i<heights.size();i++){
while(!st.empty()&&heights[i]<heights[st.top()]){
int mid=st.top();
st.pop();
int h=heights[mid];
int w=i-st.top()-1;
res=max(res,w*h);
}
st.push(i);
}
return res;
}
};