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

day 52 | 84.柱状图中最大的矩形

84.柱状图中最大的矩形

本题跟接雨水的思路是差不多的,不同的是接雨水找到的凹,这个找的是凸。因此是找到左右第一个比他小的值。因此单调栈中的顺序是从栈头到栈尾单调增。
需要注意的是,为了防止给定的元素是单调增或者单调减,所以需要在给定元素的头和尾两处加上两个0值。

func largestRectangleArea(heights []int) int {stack := make([]int, 0)stack = append(stack, 0)new := make([]int, len(heights) + 2)new[0] = 0new[len(heights)+1] = 0for i := 1; i <= len(heights);i++{new[i] = heights[i-1]}res := 0for i := 1; i < len(new);i++{if new[i] > new[stack[len(stack)-1]]{stack = append(stack, i)}else if new[i] == new[stack[len(stack)-1]]{stack = stack[:len(stack)-1]stack = append(stack, i)}else{for len(stack) != 0 && new[i] < new[stack[len(stack)-1]]{h := stack[len(stack)-1]stack = stack[:len(stack)-1]if len(stack) != 0{w := i - stack[len(stack)-1] - 1res = max(res, w * new[h])}}stack = append(stack, i)}}return res
}
func max( a,b int)int{if a < b{return b}return a
}
http://www.lryc.cn/news/159532.html

相关文章:

  • BUUCTF刷题十一道(08)
  • 快速构建基于Paddle Serving部署的Paddle Detection目标检测Docker镜像
  • SOLIDWORKS工程图自动零件序号的极致体验
  • 将ROS bag转成CSV
  • jframe生成柱状图片+图片垂直合并+钉钉机器人推送
  • 如何用J-Link仿真PY32F003系列芯片
  • # Go学习-Day10
  • vue3:5、组合式API-reactive和ref函数
  • Unity Inspector面板上显示Api
  • Redis功能实战篇之附近商户
  • selenium 自动化测试——元素定位
  • 【JMeter】 二次开发插件开发 Dubbo 接口测试插件浅析
  • 手机SSL证书认证失败是什么意思?
  • PXE网络批量装机(centos7)
  • P1104 生日
  • 计算机网络复习大纲
  • Linux:进程(概念)
  • 智能机器人:打造自动化未来的关键技术
  • 大数据(七):Pandas的基础应用详解(四)
  • 【1day】​万户协同办公平台 ezoffice未授权访问漏洞学习
  • 适配器模式:如何让不兼容的接口变得兼容
  • sentinel熔断报java.lang.reflect.UndeclaredThrowableException
  • 工业4G路由器的户外组网与无人值守场景应用
  • 中移粤港澳大湾区创新研究院、南湖研究院类脑实验室面试(部分)
  • API 自动化测试难点总结与分享
  • 【每日一题】补档 ABC309F - Box in Box | 三维偏序 | 树状数组 | 中等
  • 异步编程 - 13 高性能线程间消息传递库 Disruptor
  • (DXE_DRIVER)PciHostBridge
  • SpringMVC的增删改查的案例
  • golang入门笔记——nginx