柱状图中最大的矩形—leetcode84
给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。
求在该柱状图中,能够勾勒出来的矩形的最大面积。
以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]
。
图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10
个单位。
示例:
输入: [2,1,5,6,2,3] 输出: 10
思路:用二分法,不过普通的二分法leetcode会超时,所以增加了一个标志位判断是否[left,right]都是递增的,如果是递增的就直接返回,不用继续二分了,节省了时间。
class Solution {
public:int largestRectangleArea(vector<int>& heights) {return get_maxval(0, heights.size()-1, heights);}int get_maxval(int left,int right,vector<int>& heights){if(left>right){return 0;}int min_index = left;bool increase = true;for(int i=left+1;i<=right;++i){if(heights[i-1]>heights[i]){increase = false;}if(heights[i]<heights[min_index]){min_index = i;}}if(increase){int maxval = 0;for(int i=left;i<=right;++i){maxval = max((right-i+1)*heights[i],maxval);}return maxval;}return max(heights[min_index]*(right-left+1), max(get_maxval(left,min_index-1,heights),get_maxval(min_index+1,right,heights)));}
};
柱状图中最大的矩形—leetcode84相关推荐
- LeetCode--84.柱状图中最大的矩形(暴力法,单调栈)
柱状图中最大的矩形(暴力法,单调栈) 1. 题目描述 2. 题目分析 3. C语言实现 3.1 暴力法 3.2 单调栈 4. Java实现 1. 题目描述 难度:困难 2. 题目分析 这道题有两种解法 ...
- c语言力扣l最大矩形,leetcode 84柱状图中最大的矩形,利用单调栈求解l
利用单调了栈求解leetcode 84柱状图中最大的矩形 image image 利用单调递增栈的方式来实现,计算发生在每次弹出栈顶的操作过程中 单调递增栈的操作步骤 1.如果栈为空或者栈顶元素比入栈 ...
- java 柱状图 宽度_Java实现 LeetCode 84 柱状图中最大得矩形
84. 柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是柱状图的示例,其中每个柱子的 ...
- 在柱状图中找最大矩形——O(n)时间复杂度java实现
在柱状图中找最大矩形--O(n)时间复杂度java实现 ZZ:http://blog.csdn.net/xybsos/article/details/8049048 具体题目如下:给一组非负的整数来表 ...
- 【LeetCode】【HOT】84. 柱状图中最大的矩形(栈)
[LeetCode][HOT]84. 柱状图中最大的矩形 文章目录 [LeetCode][HOT]84. 柱状图中最大的矩形 package hot;import java.util.ArrayDeq ...
- 单调栈:leetcode 84. 柱状图中最大的矩形/85最大矩形
84. 柱状图中最大的矩形 遍历数组,以每一个元素作为高,向左右两边拓展,遇到第一个比该元素小的位置停下 图片源自leetcode力扣 一.暴力解法(超时) 遍历数组,以每一个元素作为高,向左右两边拓 ...
- 柱状图中最大的矩形多种解法
一.前言 问题来源LeetCode 84,难度:困难 问题链接:https://leetcode-cn.com/problems/largest-rectangle-in-histogram/ 二.题 ...
- leetcode必刷题(四)lee75 颜色分类、lee76 最小覆盖字串、lee78 子集、lee79 单词搜索、lee84 柱状图中最大的矩形、lee85 最大矩形、lee96 不同的二叉搜索树、
lee75 颜色分类 patition 三个指针 lee76 最小覆盖字串 滑动窗口 lee78 子集 无重复数字 回溯 lee79 单词搜索 回溯 lee84 柱状图中最大的矩形 单调栈 lee85 ...
- LeetCode 84.柱状图中最大的矩形
今天还是分享一道才刷过的题目, 柱状图中最大的矩形,这道题根上一篇我分享的接雨水类似,都是可以用双指针,动态规划(双指针加备忘录),单调栈来算 这道题的话三种方法都写了,双指针会超时,优化一下备忘录是 ...
最新文章
- day10-闭包函数、函数装饰器
- Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析
- wordpress content.php,2020主题:content.php
- ES6-7 - 箭头函数的实质、箭头函数的使用场景
- 单片机/嵌入式软件架构分层思想
- hadoop基本操作命令小结
- 《Java8实战》笔记(04):引入流
- Bootstrap 多级下拉菜单
- Windows 电脑命令一览
- 若后台的Activity被系统回收...
- 2021最新软件测试V4.0版本教程
- 《寄生虫》横扫奥斯卡,Python告诉你这部电影到底好在哪儿?
- TSCLIB.DLL函式库使用说明
- python版武侠小说男女侠姓名生成器
- 运行docker镜像,出现Exited (137) 5 seconds ago问题
- 【柒穆雨】什么是平面设计,学习平面设计需要具备什么条件?
- 原生javascript手风琴图片切换案例
- 微信小程序开发技术预研分析报告
- OMAP3530资料
- Minecraft基岩版电脑端游戏按键整合