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

力扣第84题-柱状图中最大的矩形

力扣链接:84. 柱状图中最大的矩形 - 力扣(LeetCode)

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

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

输入:heights = [2,1,5,6,2,3]
输出:10
解释:最大的矩形为图中红色区域,面积为 10

输入: heights = [2,4]
输出: 4
"""
思路:
此题和接雨水类似,我们可以遍历每一个元素,然后用一个指针P移动计算面积,计算面积之后,
更新max的值,当遇到指针的位置为0的元素直接跳过,因为不可能构成矩形
"""def largestRectangleArea(heights):max_area = 0  # 记录最大值for i in range(len(heights)):  # 循环遍历每一个索引位置p = i  # 初始p为当前的i的位置while p < len(heights):  # p到达数组末尾,结束循环if heights[p] == 0:  # 当p位置的值是0的时候,直接跳出循环,因为0高度,不能构成矩形breakw = p - i + 1  # 计算当前p位置到i位置的宽度cur_value = w * min(heights[i:p + 1])  # 高取当前i和p位置数组中的最小的值,矩形面积是有最矮的构成的来决定的max_area = max(max_area, cur_value)  # 更新最大面积的值p = p + 1  # 指针右移动return max_areaprint(largestRectangleArea([2, 1, 5, 6, 2, 3]))
print(largestRectangleArea([2, 4]))

http://www.lqws.cn/news/564193.html

相关文章:

  • Leetcode 3600. Maximize Spanning Tree Stability with Upgrades
  • Docker安装的gitlab配置ssl证书
  • 协作机器人优化自动化工作流程,提升工作效率
  • vue3报错No known conditions for “./lib/locale/lang/zh-cn”
  • HTML响应式Web设计
  • 链表题解——环形链表 II【LeetCode】
  • RK3588集群服务器性能优化案例:电网巡检集群、云手机集群、工业质检集群
  • Qwen2.5-7B-Instruct模型推理速度与量化对比分析
  • 【数据集】中国2016-2022年 城市土地利用数据集 CULU
  • 4_Flink CEP
  • 现代 JavaScript (ES6+) 入门到实战(四):数组的革命 map/filter/reduce - 告别 for 循环
  • Vue3 根据路由配置实现动态菜单
  • git常见问题汇总-重复提交/删除已提交文件等问题
  • RabbitMQ 工作模式
  • 海量数据存储与分析:HBase、ClickHouse、Doris三款数据库对比
  • 用celery作为信息中间件
  • AlpineLinux安装部署MariaDB
  • 如何撰写有价值的项目复盘报告
  • 将iso镜像文件格式转换为云平台支持的镜像文件格式
  • lv_font_conv转换自定义symbol
  • 志愿填报深度解析与专业导向推荐-AI生成
  • SATA信号基础介绍
  • python基础23(2025.6.29)分布式爬虫(增量式爬虫去重)redis应用_(未完成!)
  • DOP数据开放平台(真实线上项目)
  • c++ 学习(二、结构体)
  • 非阻塞 IO
  • 卸载Modelsim/Qustasim方法
  • matplotlib 绘制水平柱状图
  • 买卖股票的最佳时机 II
  • 开源3D 动态银河系特效:Vue 与 THREE.JS 的奇幻之旅