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

力扣刷题Day 20:柱状图中最大的矩形(84)

1.题目描述

2.思路

暴力解法会超出时间限制,但我自己又想不出来办法,所以最终摘抄学习了别人的代码,思路是:维护一个单调栈,高效地找出每个柱子左右两侧首个高度小于它的柱子,从而计算出以该柱子为高的矩形的最大面积,执行过程如下图:

3.代码(Python3)

class Solution:def largestRectangleArea(self, heights: List[int]) -> int:stack = []heights = [0] + heights + [0]answer = 0for i in range(len(heights)):while stack and heights[stack[-1]] > heights[i]:temp = stack.pop()answer = max(answer, (i - stack[-1] - 1) * heights[temp])stack.append(i)return answer

4.执行情况

5.感想

这道题好难啊!题解都看得我稀里糊涂的,只能跟着代码思路把执行流程走一遍,但是不知道这种思路到底是作者怎么想出来的。好挫败······

相关文章:

  • 万物对接大模型:【爆火】MCP原理与使用指南
  • 广东水利水电安全员 B 证考试精选题
  • AutoSAR从概念到实践系列之MCAL篇(一)——MCAL架构及其模块详解
  • http请求和websocket区别和使用场景
  • o3和o4-mini的升级有哪些亮点?
  • 纯CSS实现自动滚动到底部
  • C++ 二叉搜索树
  • 安装多个DevEco Studio版本,如何才能保证各个版本不冲突?
  • 「仓颉编程语言」Demo
  • 网络互连与互联网3
  • 从零到精通:用 GoFrame 和 go-resty 优雅调用第三方 HTTP API
  • 消息队列生产者投递的高可靠性与一致性保障方案
  • 【Linux】深入理解Linux文件系统:从C接口到内核设计哲学
  • MCP 协议:技术架构与核心机制深度解析——为智能时代打造统一“接口”
  • Linux | I.MX6ULL Uboot 编译(12)
  • opencv函数展示3
  • IntelliSense 已完成初始化,但在尝试加载文档时出错
  • 解读固定资产管理系统的核心功能模块
  • 中建海龙:模块化集成建筑重构人类居住文明的未来范式
  • PoCL环境搭建
  • 视觉周刊|第五届中国国际消费品博览会展现全球合作新格局
  • 2025“上海之夏”向全球邀约,首批城市定制活动集中亮相
  • 一女子称醉酒后疑似被性侵,长沙警方通报:嫌犯邱某某已被刑拘
  • 龚桢梽任广东省发展和改革委员会副主任
  • 商务部:中方愿与欧方共同努力,维护多边贸易体制
  • 江西南昌:千年银杏树倒伏,全力抢救进行时​