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;
    }
};
相关推荐
zhangren024682 分钟前
PHP vs C++:从Web脚本到系统编程的终极对比
开发语言·c++·php
小则又沐风a6 分钟前
类和对象(C++)---上
java·c++·算法
临溟夜空的繁星7 分钟前
C++STL—— list
开发语言·c++·list
原来是猿21 分钟前
关于【进程池阻塞 + 子进程未回收问题】
linux·服务器·c++
C澒24 分钟前
PC 桌面富应用:速分客户端
前端·c++·electron·web app
深邃-29 分钟前
数据结构-双向链表
c语言·开发语言·数据结构·c++·算法·链表·html5
2401_8785302131 分钟前
分布式任务调度系统
开发语言·c++·算法
艾莉丝努力练剑37 分钟前
【Linux:文件】文件基础IO进阶
linux·运维·服务器·c语言·网络·c++·centos
_深海凉_1 小时前
LeetCode热题100-两数之和
算法·leetcode·职场和发展
程序猿编码1 小时前
基于ncurses的TCP连接可视化与重置工具:原理与实现(C/C++代码实现)
linux·c语言·网络·c++·tcp/ip