代码随想录算法训练营第60天|84.柱状图中最大的矩形
|有了之前单调栈的铺垫,这道题目就不难了。
84.柱状图中最大的矩形
https://programmercarl.com/0084.%E6%9F%B1%E7%8A%B6%E5%9B%BE%E4%B8%AD%E6%9C%80%E5%A4%A7%E7%9A%84%E7%9F%A9%E5%BD%A2.html
class Solution {
public:
int largestRectangleArea(vector<int>& heights) {
stack<int> st;
heights.insert(heights.begin(),0);// 数组头部加入元素0
heights.push_back(0); // 数组尾部加入元素0
st.push(0);
int result=0;
for(int i=1;i<heights.size();i++)
{
while(heights[i]<heights[st.top()])
{
int mid=st.top();
st.pop();
int w=i-st.top()-1;
int h=heights[mid];
result=max(result,w*h);
}
st.push(i);
}
return result;
}
};
今天是训练营最后一天,恭喜坚持两个月的录友们,接下来可以写一篇自己 代码随想录一刷的总结。好好回顾一下,这两个月自己的博客内容,以及自己的收获。