84.柱状图中最大的矩形
题目链接:. - 力扣(LeetCode)
文档讲解:代码随想录
视频讲解:单调栈,又一次经典来袭! LeetCode:84.柱状图中最大的矩形_哔哩哔哩_bilibili
状态:未通过
代码实现:
class Solution {
public:int largestRectangleArea(vector<int>& heights) {int result = 0;heights.insert(heights.begin(), 0);heights.push_back(0);stack<int> st;st.push(0);for(int i = 1; i < heights.size(); i++){if(heights[i] > heights[st.top()]) st.push(i);else if(heights[i] == heights[st.top()]){st.pop();st.push(i);}else{while(!st.empty() && heights[i] < heights[st.top()]){int mid = st.top();st.pop();if(!st.empty()){int right = i;int left = st.top();result = max(result, heights[mid] * (right - left - 1));}}st.push(i);}}return result;}
};