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

单调栈|图

 

 

 

lc85

预处理后

复用84题的抽象思想

单增栈,填每个位置比h[i]矮的 左&右边界

ret==max每一行的矩形max

 

 

 

lc84

 单增栈,填每个位置左&右边界

 class Solution {

public:

    int largestRectangleArea(vector<int>& heights) {

        int n = heights.size();

        vector<int> left(n, -1);//init

        vector<int> right(n, n);

        stack<int> st;

        

        

        for (int i = 0; i < n; ++i) 

        {

            // 右边界

            while (!st.empty() && heights[i] < heights[st.top()])

             {

                int idx = st.top();

                st.pop();

                right[idx] = i;

            }

            

            // 左边界

            if (!st.empty()) 

            {

                left[i] = st.top();

            }

            

            st.push(i);

        }

        

        int mx = 0;

        for(int i=0;i<n;i++)

        {

       mx=max(mx,(right[i]-left[i]-1)*heights[i]);

        }

        return mx;

    }

};

 

http://www.dtcms.com/a/314498.html

相关文章:

  • 电脑上不了网怎么办?【图文详解】wifi有网络但是电脑连不上网?网络设置
  • 【C++】——类和对象(下)
  • SpringBoot3.x入门到精通系列:3.3 整合 Elasticsearch 详解
  • Oracle EBS ERP接口开发 — 修复bug基本流程
  • 《人形机器人的觉醒:技术革命与碳基未来》——类人关节设计:气动人工肌肉PAM及其对材料技术要求与限制
  • 安装MySQL可视化管理工具DBeaver教程
  • Armoury Crate无法通过BIOS卸载
  • 微信小程序本地存储与Cookie的区别
  • 华为OD机考2025C卷 - 开源项目热度榜单 (Java Python JS C++ C )
  • Java反射的Field
  • 消息系统技术文档
  • 抽像代数概念理解——陪集(coset)
  • 华为2288H V5服务器闪红灯 无法开机案例
  • SpringBoot整合t-io是websocket实时通信
  • 题单【排序】
  • linux中 多进程 导致cuda错误的问题解决
  • 【测试】⾃动化测试常⽤函数
  • 配置Mybatis环境
  • 向量魔法:Embedding如何赋能大模型理解世界
  • 靶场(二十八)---小白心得靶场体会---Mantis
  • 嵌入式开发学习———Linux环境下IO进程线程学习(三)
  • DolphinScheduler 集成DataX
  • 前端VUE基础环境搭建
  • opencv引入libavif
  • typeof和instanceof区别
  • 静电干扰误报率↓85%!陌讯多模态融合算法在智慧环卫检测优化
  • python基础:数据解析BeatuifulSoup,不需要考虑前端形式的一种获取元素的方法
  • 【前端】JavaScript基础知识及基本应用
  • 【AMD】编译llama.cpp实践版
  • 管家级教程:在 Windows 上配置 WSL2、CUDA 及 VLLM,开源音频克隆项目