[Leetcode] Largest Rectangle in Histogram
2013-03-10 03:36
495 查看
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.
![](http://www.leetcode.com/wp-content/uploads/2012/04/histogram.png)
Above is a histogram where width of each bar is 1, given height =
![](http://www.leetcode.com/wp-content/uploads/2012/04/histogram_area.png)
The largest rectangle is shown in the shaded area, which has area =
For example,
Given height =
return
in the histogram.
![](http://www.leetcode.com/wp-content/uploads/2012/04/histogram.png)
Above is a histogram where width of each bar is 1, given height =
[2,1,5,6,2,3].
![](http://www.leetcode.com/wp-content/uploads/2012/04/histogram_area.png)
The largest rectangle is shown in the shaded area, which has area =
10unit.
For example,
Given height =
[2,1,5,6,2,3],
return
10.
class Solution { public: int largestRectangleArea(vector<int> &height) { // Start typing your C/C++ solution below // DO NOT write int main() function stack<int> heightIndex; stack<int> widthIndex; int maxSum = 0; int width; int lastIndex; int i = 0; for(i = 0;i<height.size();i++) { lastIndex = i; while(!heightIndex.empty() && height[i]<height[heightIndex.top()] ) { width = i - widthIndex.top(); lastIndex = widthIndex.top(); maxSum = max(maxSum,width*height[heightIndex.top()]); heightIndex.pop(); widthIndex.pop(); } widthIndex.push(lastIndex); heightIndex.push(i); } while(!heightIndex.empty()) { width = i - widthIndex.top(); maxSum = max(maxSum,width*height[heightIndex.top()]); heightIndex.pop(); widthIndex.pop(); } return maxSum; } };
相关文章推荐
- LeetCode Online Judge 题目C# 练习 - Largest Rectangle in Histogram
- LeetCode---(84)Largest Rectangle in Histogram
- leetcode -- Largest Rectangle in Histogram TODO O(N)
- LeetCode 84 Largest Rectangle in Histogram (单调栈)
- Leetcode: Largest Rectangle in Histogram
- LeetCode 84 Largest Rectangle in Histogram
- [Leetcode] Largest Rectangle in Histogram
- [LeetCode] Largest Rectangle in Histogram
- leetcode[84]Largest Rectangle in Histogram
- leetcode Largest Rectangle in Histogram
- LeetCode84 Largest Rectangle in Histogram
- [leetcode] Largest Rectangle in Histogram @ Python [图解] [很难]
- LeetCode(84) Largest Rectangle in Histogram
- leetcode - Largest Rectangle in Histogram
- [leetcode]largest-rectangle-in-histogram
- [Leetcode] Largest Rectangle in Histogram (Java)
- leetcode 84 Largest Rectangle in Histogram
- [Leetcode] Largest Rectangle in Histogram
- LeetCode之“动态规划”:Maximal Square && Largest Rectangle in Histogram && Maximal Rectangle
- LeetCode - Largest Rectangle in Histogram