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

力扣 hot100 Day68

84. 柱状图中最大的矩形

给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。

求在该柱状图中,能够勾勒出来的矩形的最大面积。

class Solution {
public:int largestRectangleArea(vector<int>& heights) {stack<int> stk;int max_area = 0;int n = heights.size();heights.push_back(0);n += 1;for (int i = 0; i < n; ++i) {while (!stk.empty() && heights[i] < heights[stk.top()]) {int height = heights[stk.top()];stk.pop();int width = stk.empty() ? i : i - stk.top() - 1;max_area = max(max_area, height * width);}stk.push(i);}heights.pop_back();        return max_area;}
};

单调栈,栈内保存一个自栈底递增至栈顶的序列

每个元素都会入栈,当当前数小于栈顶值时,开始处理栈内元素,由于此时栈顶慢慢弹出递减,而宽度慢慢弹出递增,所以此时比较是有意义的。

对于一个特定高度,最大的矩形就是左右边界都比该高度更高的范围,这在该循环中都遍历到了

开始时在原序列末加入0值,防止最后有元素未处理

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

相关文章:

  • 主流小程序 SaaS 平台测评,2025年小程序开发避坑指南
  • 移动端录屏需求调研:以小熊录屏为例的轻量级实现方案
  • .NET9 AOT完全自举了吗?
  • 面向对象之类方法,成员变量和局部变量
  • 【前端八股文面试题】JavaScript中的数据类型?存储上的差别?
  • react_05create-react-app脚手架详细解析(export)
  • 基于开源AI智能名片链动2+1模式S2B2C商城小程序的微商产品经营策略研究
  • 基于开源链动2+1模式AI智能名片S2B2C商城小程序的用户留存策略研究
  • iOS 文件管理实战指南,用户文件、安全访问与开发调试方案
  • Socket 编程预备
  • 拥抱云原生:从传统架构到云原生架构的演进与实践
  • 算法题(182):滑动窗口
  • mysql基础-分组查询
  • 全面解析 URL 重定向原理:从协议、实现到安全实践
  • 【物联网】基于树莓派的物联网开发【24】——树莓派安装influxDB时序数据库
  • 套接字编程UDP
  • Android-Kotlin基础(Jetpack③-LiveData)
  • 数据结构初阶(4)栈
  • Python生成统计学公式
  • 数据结构:双向链表(Doubly Linked List)
  • 快速搭建开源网页编辑器(vue+TinyMCE)
  • 大屏数据展示页面,数据可视化可以用到的框架和插件
  • 剧本杀小程序系统开发:推动社交娱乐产业创新发展
  • requests模块
  • Web3.0引领互联网未来,助力安全防护升级
  • 基于django的非物质文化遗产可视化网站设计与实现
  • 重学React(三):状态管理
  • Java如何快速实现短信登录?
  • 【指南版】网络与信息安全岗位系列(三):安全运维工程师
  • 农作物优选,耕耘希望的田野