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

力扣第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.xdnf.cn/news/14812.html

相关文章:

  • Webpack中的Loader详解
  • 用户行为序列建模(篇六)-【阿里】DSIN
  • 实战篇----利用 LangChain 和 BERT 用于命名实体识别-----完整代码
  • flask使用-链接mongoDB
  • Python爬虫-爬取汽车之家全部汽车品牌及车型数据
  • ListExtension 扩展方法增加 转DataTable()方法
  • Lua现学现卖
  • DOP数据开放平台(真实线上项目)
  • 电商返利APP架构设计:如何基于Spring Cloud构建高并发佣金结算系统
  • OpenLayers 下载地图切片
  • 解决cursor无法下载插件等网络问题
  • vue-29(创建 Nuxt.js 项目)
  • 从用户到权限:解密 AWS IAM Identity Center 的授权之道
  • 给定一个没有重复元素的数组,写出生成这个数组的MaxTree的函数
  • TDengine 如何使用 MQTT 采集数据?
  • lambda、function基础/响应式编程基础
  • [论文阅读] 软件工程 | 微前端在电商领域的实践:一项案例研究的深度解析
  • NLP中的同义词替换及我踩的坑
  • 创客匠人视角:创始人 IP 打造为何成为知识变现的核心竞争力
  • 【算法深练】单调栈:有序入栈,及时删除垃圾数据
  • 鸿蒙5:组件监听和部分状态管理V2
  • 为何需要防爆平板?它究竟有何能耐?
  • 【龙泽科技】新能源汽车故障诊断仿真教学软件【吉利几何G6】
  • 学习使用dotnet-dump工具分析.net内存转储文件(2)
  • vue-28(服务器端渲染(SSR)简介及其优势)
  • 舵机在不同类型机器人中的应用
  • Python 数据分析与可视化 Day 10 - 数据合并与连接
  • Linux的top指令CPU占用率详解(白话版)——Linux进阶常用知识点
  • 网络缓冲区
  • uni-app项目实战笔记26--uniapp实现富文本展示