LeetCode | Largest Rectangle in Histogram(直方图围城的最大矩形面积)
来源:互联网 发布:茶叶网络推广 编辑:程序博客网 时间:2024/04/30 13:28
Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectangle in the histogram.
Above is a histogram where width of each bar is 1, given height = [2,1,5,6,2,3]
.
The largest rectangle is shown in the shaded area, which has area = 10
unit.
For example,
Given height = [2,1,5,6,2,3]
,
return 10
.
题目解析:
方案一:
这道题目想到了动态规划,m[i,j] = min( m[i,j-1]/(j-i) , height[j] ) * (j-i+1);设置动态设置二维数组,也是以len为主循环。最后遍历整个二维数组,找出最大值。方法正确,但提交的时候,内存超限。还是数组太大造成的。
class Solution {public: int largestRectangleArea(vector<int> &height) { int n = height.size(); int **arr = new int*[n]; for(int i = 0;i < n;i++) arr[i] = new int[n]; for(int i = 0;i < n;i++) arr[i][i] = height[i]; for(int len = 2;len <= n;len++){ for(int i = 0;i < n-len+1;i++){ int j = i + len -1; int min = arr[i][j-1]/(j-i) > height[j] ? height[j] : arr[i][j-1]/(j-i); arr[i][j] = min * (j-i+1); } } int largest = 0; for(int i = 0;i < n;i++) for(int j = i;j < n;j++){ if(largest < arr[i][j]){ largest = arr[i][j]; } } for(int i = 0;i < n;i++) delete[] arr[i]; delete[] arr; return largest; }};
方案二:
链接中用到栈的方法,各种各样,回头有时间了再深究……
http://www.cnblogs.com/remlostime/archive/2012/11/25/2787359.html
http://blog.sina.com.cn/s/blog_727d57100100o3e6.html
http://www.2cto.com/kf/201207/140484.html
http://blog.csdn.net/doc_sgl/article/details/11805519
http://www.cnblogs.com/avril/archive/2013/08/24/3278873.html
- LeetCode | Largest Rectangle in Histogram(直方图围城的最大矩形面积)
- Largest Rectangle in Histogram 直方图中最大的矩形面积
- [Leetcode] largest rectangle in histogram 直方图中最大的矩形
- Largest Rectangle in Histogram (直方图中最大面积) 【leetcode】
- [LeetCode]—Largest Rectangle in Histogram 求直方图最大填充矩形面积
- LeetCode: Largest Rectangle in Histogram(直方图最大面积)
- 4.1.3LeetCode: Largest Rectangle in Histogram(直方图最大面积)
- LeetCode 84. Largest Rectangle in Histogram(直方图最大矩形)
- 【直方图的最大面积】Largest Rectangle in Histogram
- Largest Rectangle in Histogram 直方图中最大的矩形
- Largest Rectangle in Histogram 一排矩形中的最大的面积
- LeetCode OJ 之 Largest Rectangle in Histogram (直方图中的最大矩形)
- leetCode 84.Largest Rectangle in Histogram (最大矩形直方图) 解题思路和方法
- 柱状图内最大的矩形面积 Largest Rectangle in Histogram @LeetCode
- [C++]LeetCode: 133 Largest Rectangle in Histogram(最大矩形面积)
- 84 Largest Rectangle in Histogram(直方图中最大的矩形)
- LeetCode 84. Largest Rectangle in Histogram(最大矩形)
- HDU 1056 Largest Rectangle in a Histogram(dp)(求最大的矩形面积)
- 一道算法题引发的动态内存管理的思考
- CSS3详解:transform
- SGU 326. Perspective (最大流)
- 小米如何在社会化媒体上引爆口碑?
- 1176. Two Ends(搜索破解此题)
- LeetCode | Largest Rectangle in Histogram(直方图围城的最大矩形面积)
- 常用的八个CMD命令
- 简单递归问题
- 【c++】计时函数
- 关于启动mysql服务1067错误
- 《编程珠玑(第2版)》笔记——将一个n元一维向量向左旋转i个位置(第2章)
- Android平台下驱动的开发及测试框架概述(二)
- toj 2857. Digit Sorting
- 基于SDL的SDL_mixer库的音乐播放器