C++ | Leetcode C++题解之第84题柱状图中最大的矩形

题目:

题解:

cpp 复制代码
class Solution {
public:
    int largestRectangleArea(vector<int>& heights) {
        int n = heights.size();
        vector<int> left(n), right(n, n);
        
        stack<int> mono_stack;
        for (int i = 0; i < n; ++i) {
            while (!mono_stack.empty() && heights[mono_stack.top()] >= heights[i]) {
                right[mono_stack.top()] = i;
                mono_stack.pop();
            }
            left[i] = (mono_stack.empty() ? -1 : mono_stack.top());
            mono_stack.push(i);
        }
        
        int ans = 0;
        for (int i = 0; i < n; ++i) {
            ans = max(ans, (right[i] - left[i] - 1) * heights[i]);
        }
        return ans;
    }
};
相关推荐
鄃鳕1 小时前
python 字典 列表 类比c++【python】
c++·python
夏鹏今天学习了吗1 小时前
【LeetCode热题100(46/100)】从前序与中序遍历序列构造二叉树
算法·leetcode·职场和发展
吃着火锅x唱着歌1 小时前
LeetCode 2389.和有限的最长子序列
算法·leetcode·职场和发展
保持低旋律节奏2 小时前
C++——list链表
c++·链表·list
2401_841495643 小时前
【数据结构】基于Floyd算法的最短路径求解
java·数据结构·c++·python·算法··floyd
纵有疾風起4 小时前
C++模版:模板初阶及STL简介
开发语言·c++·经验分享·开源
QT 小鲜肉4 小时前
【个人成长笔记】Qt Creator快捷键终极指南:从入门到精通
开发语言·c++·笔记·qt·学习·学习方法
勇闯逆流河4 小时前
【C++】用红黑树封装map与set
java·开发语言·数据结构·c++
实心儿儿4 小时前
C++——内存管理
c++
山,离天三尺三4 小时前
深度拷贝详解
开发语言·c++·算法