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;
    }
};
相关推荐
lizz311 天前
C++模板编程:从入门到精通
java·开发语言·c++
Queenie_Charlie1 天前
HASH表
数据结构·c++·哈希算法
superman超哥1 天前
仓颉语言中锁的实现机制深度剖析与并发实践
c语言·开发语言·c++·python·仓颉
郝学胜-神的一滴1 天前
OpenGL的glDrawElements函数详解
开发语言·c++·程序人生·游戏·图形渲染
WBluuue1 天前
AtCoder Beginner Contest 436(ABCDEF)
c++·算法
辣机小司1 天前
【软件设计师】自编思维导图和学习资料分享(中级已过)
java·c++·软考·软件设计师
json{shen:"jing"}1 天前
1-C语言的数据类型
c语言·c++·算法
LYFlied1 天前
【算法解题模板】动态规划:从暴力递归到优雅状态转移的进阶之路
数据结构·算法·leetcode·面试·动态规划
名誉寒冰1 天前
GDB 调试与 Core Dump(段错误)排查指南(Linux/C/C++)
linux·c语言·c++
FMRbpm1 天前
串练习--------535.TinyURL的加密和解密
数据结构·c++·新手入门