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

柱状图中最大的矩形+单调栈

题目:
在这里插入图片描述
思考:

  1. 维持一个单调增加的单调栈
  2. 遍历
  3. 遇到更低的高度时将栈内高于该元素的都出栈,并计算出栈高度的最大宽度(栈顶元素下表+1为左边界,当前遍历元素下标为右边界)

实现:


class Solution {
public:int largestRectangleArea(vector<int>& heights) {stack<pair<int,int>> stk;int ret=heights[0];stk.push({heights[0],0});int size=heights.size();for (int i=1;i<size;i++){while(!stk.empty()&&stk.top().first>heights[i]){auto top=stk.top();stk.pop();while(!stk.empty()&&stk.top().first==top.first){top=stk.top();stk.pop();}if (stk.empty()){ret=max(ret,i*top.first);}else{ret=max(ret,(i-stk.top().second-1)*top.first);}}stk.push({heights[i],i});}while(!stk.empty()){auto top=stk.top();stk.pop();while(!stk.empty()&&stk.top().first==top.first){top=stk.top();stk.pop();}if (stk.empty()){ret=max(ret,size*top.first);}else{ret=max(ret,(size-stk.top().second-1)*top.first);}}return ret;}
};
http://www.dtcms.com/a/348274.html

相关文章:

  • STM32 入门实录:macOS 下从 0 到点亮 LED
  • Java全栈开发面试实录:从基础到实战的深度探讨
  • 微服务-19.什么是网关
  • 【论文阅读】AI 赋能基于模型的系统工程研究现状与展望
  • Redis--day12--黑马点评--附近商铺用户签到UV统计
  • Excel 表格 - 合并单元格、清除单元格格式
  • 包裹堆叠场景漏检率↓79%!陌讯多目标追踪算法在智慧物流的实践优化
  • EXCEL实现复制后倒序粘贴
  • 暗影哨兵:安全运维的隐秘防线
  • 深度学习部署实战 Ubuntu24.04单机多卡部署ERNIE-4.5-VL-28B-A3B-Paddle文心多模态大模型(详细教程)
  • 用墨刀开发能碳管理系统 —— 从流程图到设计稿全流程拆解
  • EAM、MES和CRM系统信息的整理
  • c语言指针学习
  • C文件编译
  • IQC、IPQC、PQC、FQC、OQC在ERP/MES/WMS中的系统协同
  • 【SBP】Unity 打包构建管线原理解析于对比
  • 什么是服装企业管理软件?
  • 【Canvas与旗帜】金波浪圈法兰西国旗
  • 广告业务连续四季度双位数增长,B站做了什么?
  • DAY 51 复习日+退款开始
  • 数据挖掘 4.8 评估泛化能力
  • 【DeepResearch调研】基于知识图谱与数据合成的大语言模型幻觉缓解研究前沿
  • C++ Core Guidelines: 最佳实践与深入解析
  • 服务器硬件电路设计之 SPI 问答(五):服务器场景下的ESD防护策略与通信故障诊断指南
  • Flink元空间异常深度解析:从原理到实战调优指南
  • LLM实践系列:利用LLM重构数据科学流程07 - 工程化实践与挑战
  • 计算机网络基础(三) --- TCP/IP网络结构(运输层)
  • 实时操作系统FreeRTOS移植到STM32VGT6
  • Axure RP 9的安装
  • 2025年渗透测试面试题总结-31(题目+回答)