当前位置: 首页 > 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环境搭建
  • 线下无理由退货怎样操作?线上线下监管有何不同?市场监管总局回应
  • 《蓦然回首》:现代动画的践行与寓言
  • 新质观察|“模速空间”如何成为“模范空间”
  • 强沙尘暴压城近万名游客被困,敦煌如何用3小时跑赢12级狂风?
  • 多地政府机关食堂五一“开门迎客”:怎么看这场“宠粉”大戏
  • 英伟达:美国无法操纵监管机构在AI领域取胜,美企应专注创新而不是编造荒诞谣言