【LeetCode】Largest Rectangle in Histogram
来源:互联网 发布:淘宝退货率太高 编辑:程序博客网 时间:2024/05/29 14:56
题目描述:
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
.
思路是这样的:
对位置为i的元素,能构成的最大矩形:以i为中心向两边延伸,左边界为第一个小于i的数,右边界为第一个小于i的数。如何确定这个位置,从思路上来讲挺困难的。
画图无能,引用下详细解释的外链:Largest Rectangle in Histogram
代码如下:
class Solution {public:int largestRectangleArea(vector<int> &height) {stack<int> h;int res(0);height.push_back(0);int i = 0;while (i < height.size()){if (h.empty() || height[i] >= height[h.top()])h.push(i++);else{int n = h.top();h.pop();if (h.empty())n = height[n] * i;elsen = height[n] * (i - h.top() - 1);res = std::max(res, n);}}return res;}};
0 0
- LeetCode: Largest Rectangle in Histogram
- LeetCode Largest Rectangle in Histogram
- LeetCode: Largest Rectangle in Histogram
- [Leetcode] Largest Rectangle in Histogram
- [LeetCode] Largest Rectangle in Histogram
- [Leetcode] Largest Rectangle in Histogram
- [leetcode] Largest Rectangle in Histogram
- [LeetCode]Largest Rectangle in Histogram
- Leetcode: Largest Rectangle in Histogram
- [leetcode]Largest Rectangle in Histogram
- Leetcode:Largest Rectangle in Histogram
- LeetCode-Largest Rectangle in Histogram
- LeetCode Largest Rectangle in Histogram
- [LeetCode] Largest Rectangle in Histogram
- leetcode Largest Rectangle in Histogram
- [LeetCode] Largest Rectangle in Histogram
- leetcode Largest Rectangle in Histogram
- <Leetcode>Largest Rectangle in Histogram
- android之scroller类
- 黑马程序员--Java高新技术--JDK1.5新特性(下)
- ini_set的用法介绍
- crtmpserver组网部署方案
- HDU 2546 饭卡(01背包)
- 【LeetCode】Largest Rectangle in Histogram
- jQuery 实现交换元素位置(移动节点)
- 2014百度之星资格赛解题报告:Disk Schedule
- 网络基础
- a20 和imx6q
- mysql免安装版配置方法
- SQL SERVER中将秒数转换成时分秒
- linux内核实验0
- 相似图片搜索的三种哈希算法