当前位置: 首页 > article >正文

每日一题 LCR 039. 柱状图中最大的矩形

LCR 039. 柱状图中最大的矩形

是由单调栈

class Solution {
public:
    int largestRectangleArea(vector<int>& heights) {
        heights.insert(heights.begin(),0);
        heights.push_back(0);
        int ans = 0;
        stack<int> stk;
        for(int i=0;i<heights.size();++i){
            while(!stk.empty() && heights[stk.top()] > heights[i]){
                int r = stk.top();
                stk.pop();
                int area = (i - stk.top() -1 ) * heights[r];
                ans = max(ans,area);
            }
            stk.push(i);
        }
        return ans; 
    }
};

使用动态规划更容易理解

class Solution {
public:
    int largestRectangleArea(vector<int>& heights) {
        int n = heights.size();
        vector<int> dpl(n,0);
        vector<int> dpr(n,0);
        stack<int> stk;
        for(int i=0;i<n;++i){
            while(!stk.empty() && heights[stk.top()] >= heights[i]){
                stk.pop();
            }
            dpl[i] = stk.empty() ? -1 : stk.top();
            stk.push(i);
        }
        while(!stk.empty()) stk.pop();
        for(int i=n-1;i>=0;--i){
            while(!stk.empty() && heights[stk.top()] >= heights[i]){
                stk.pop();
            }
            dpr[i] = stk.empty() ? n :stk.top();
            stk.push(i);
        }

        int ans = 0;
        for(int i=0;i<n;++i){
            int area  = (dpr[i] - dpl[i]-1) * heights[i];
            ans = max(ans,area);
        }
        return ans;
    }
};

http://www.kler.cn/a/421061.html

相关文章:

  • 基于STM32设计的智能家居控制系统(华为云IOT)_275
  • JavaScript(JS)的对象
  • D87【python 接口自动化学习】- pytest基础用法
  • burp2
  • MATLAB —— 机械臂工作空间,可达性分析
  • 单片机学习笔记 12. 定时/计数器_定时
  • openjdk17 jvm 大对象 内存分配 在C++源码体现
  • RouterOS ROSV7 基于域名的分流实现
  • 构建短视频矩阵生态体系开发分享
  • 卷积网络和残差网络
  • 【AI系统】Ascend C 语法扩展
  • 家政小程序开发,打造便捷家政生活小程序
  • C# 定时通讯的高速串口的编程框架
  • C++(六)
  • 手机设置了卡2上网,卡1禁止上网,但是卡1还是会偷偷跑流量,这是什么情况???
  • 【HTTP】HTTP协议
  • 嵌入式蓝桥杯学习1 电量LED
  • Kylin Server V10 下基于Kraft模式搭建Kafka集群
  • Leetcode 每日一题 383.赎金信
  • D86【python 接口自动化学习】- pytest基础用法
  • 《Spring Boot 整合 Avro 与 Kafka》
  • C++ 简介
  • 恼人的MAVEN,继续报 xx is present in the local repository, but
  • 第十七届山东省职业院校技能大赛 高职组“信息安全管理与评估”比赛通知
  • 7、硬盘品牌分类介绍:西数 - 计算机硬件品牌系列文章
  • java执行规则引擎