题目描述:

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

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

以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]

图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。

示例:

输入: [2,1,5,6,2,3]
输出: 10


思路:

采用二分的思路,首先计算 面积m=总长度*所有柱状图高度最小值。然后将整个柱状图分为两部分,高度为1的柱体的左边部分和高度为1的右边部分。再分别对每部分计算 面积m。直到数组的长度为0。定义一个函数countArea(low,high)接收两个参数,当前数组的左、右序号,再递归求值。


JavaScript:

/*** @param {number[]} heights* @return {number}*/
var largestRectangleArea = function(heights) {var maxArea=0;function countArea(low,high){if((high-low)<0){return;}var min=heights[low];var index=low;for(var i=low+1;i<=high;i++){if(min>heights[i]){min=heights[i];index=i;}}var area=(high-low+1)*min;if(area>maxArea)maxArea=area;countArea(low,index-1);countArea(index+1,high);}countArea(0,heights.length-1);return maxArea;
};

LeetCode 84. 柱状图中最大的矩形(Largest Rectangle in Histogram)相关推荐

  1. c语言力扣l最大矩形,leetcode 84柱状图中最大的矩形,利用单调栈求解l

    利用单调了栈求解leetcode 84柱状图中最大的矩形 image image 利用单调递增栈的方式来实现,计算发生在每次弹出栈顶的操作过程中 单调递增栈的操作步骤 1.如果栈为空或者栈顶元素比入栈 ...

  2. 单调栈:leetcode 84. 柱状图中最大的矩形/85最大矩形

    84. 柱状图中最大的矩形 遍历数组,以每一个元素作为高,向左右两边拓展,遇到第一个比该元素小的位置停下 图片源自leetcode力扣 一.暴力解法(超时) 遍历数组,以每一个元素作为高,向左右两边拓 ...

  3. java 柱状图 宽度_Java实现 LeetCode 84 柱状图中最大得矩形

    84. 柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是柱状图的示例,其中每个柱子的 ...

  4. LeetCode 84.柱状图中最大的矩形

    今天还是分享一道才刷过的题目, 柱状图中最大的矩形,这道题根上一篇我分享的接雨水类似,都是可以用双指针,动态规划(双指针加备忘录),单调栈来算 这道题的话三种方法都写了,双指针会超时,优化一下备忘录是 ...

  5. LeetCode 84. 柱状图中最大的矩形(单调递增栈)

    文章目录 1. 题目 2. 解题 1. 题目 题目链接 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是 ...

  6. leetcode - 84. 柱状图中最大的矩形

    给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [ ...

  7. LeetCode 84. Largest Rectangle in Histogram

    LeetCode 84. Largest Rectangle in Histogram Solution1:我的答案 循环里头套了一个动态规划,缺点是当heights个数或最大高度多高时会很耗时间!! ...

  8. 【LeetCode】【HOT】84. 柱状图中最大的矩形(栈)

    [LeetCode][HOT]84. 柱状图中最大的矩形 文章目录 [LeetCode][HOT]84. 柱状图中最大的矩形 package hot;import java.util.ArrayDeq ...

  9. 【第60天| 84.柱状图中最大的矩形】

    84.柱状图中最大的矩形 class Solution {public:int largestRectangleArea(vector<int>& heights) {stack& ...

最新文章

  1. HashSet中的add()方法( 五 )(详尽版)
  2. R语言stringr包str_extract函数检查数据是否包含特定模式实战
  3. 格子大法与换入换出分析
  4. 经济和信息化谋定研究-左晓栋:国家网络安全事件应急预案
  5. mybatis入门(一)之基础安装
  6. 架构师前辈告诉你:代码该如何才能自己写得容易,别人看得也不痛苦
  7. trufflesuite/truffle-hdwallet-provider
  8. 终端下vim无法输入问题解决
  9. 3号团队-团队任务5:项目总结会
  10. php中几个数组函数array_slice() array_filter array_unique() in_array()
  11. 【Java学习笔记之三】java中的变量和常量
  12. Sql Server2005创建数据库
  13. 【新技术】 移动支付过程中的NFC技术
  14. 阿里巴巴java开发手册 《Java开发手册》v1.5.0 华山版.pdf
  15. 用dcloud平台的H5+实现消息推送APP端通知栏接收的问题
  16. Python 一百多行实现抢票助手
  17. 苹果微信更新不了最新版本_微信登录提示版本过低 微信登录不了的解决办法...
  18. 利用Jimi进行图片缩放操作
  19. illegal offset type php,PHP warning Illegal offset type错误解决办法
  20. Win10系统下CMD命令提示符输入ipconfig命令无法使用的解决方法

热门文章

  1. PHP读取超大的excel文件数据的方案
  2. Maven_Build_Resources
  3. html5+css3实战之-幽灵按钮
  4. SQL Server 索引和表体系结构(包含列索引)
  5. 项目管理修炼之道之估算工作
  6. 透明化网络管理,事前处理实现轻松运维
  7. SQL Server相关知识
  8. python常用小技巧(四)——批量图片改名
  9. MyBatis系列之浅谈SQL执行流程分析
  10. pytorch1.0 用torch script导出模型