leetcode---largest-rectangle-in-histogram---栈
2018-01-21 17:48
323 查看
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 =10unit.
For example,
Given height =[2,1,5,6,2,3],
return10.
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 =10unit.
For example,
Given height =[2,1,5,6,2,3],
return10.
class Solution { public: int largestRectangleArea(vector<int> &height) { stack<int> s; int ans = 0; for(int i=0; i<height.size(); i++) { int cnt = 0; if(s.empty() || s.top() <= height[i]) { s.push(height[i]); } else { while(!s.empty() && s.top() > height[i]) { ++cnt; ans = max(ans, cnt * s.top()); s.pop(); } while(cnt--) s.push(height[i]); s.push(height[i]); } } int cnt = 1; while(!s.empty()) { ans = max(ans, cnt * s.top()); ++cnt; s.pop(); } return ans; } };
相关文章推荐
- LeetCode: Largest Rectangle in Histogram
- LeetCode--largest-rectangle-in-histogram
- LeetCode 4.1.3 Largest Rectangle in Histogram
- leetcode 084 —— Largest Rectangle in Histogram
- LeetCode 84 (Largest Rectangle in Histogram)java
- leetcode Largest Rectangle in Histogram
- LeetCode(84) Largest Rectangle in Histogram
- [leetcode] Largest Rectangle in Histogram @ Python [图解] [很难]
- Leetcode Largest Rectangle in Histogram
- LeetCode084 Largest Rectangle in Histogram
- 【LeetCode】Largest Rectangle in Histogram
- LeetCode力扣之Largest Rectangle in Histogram
- [leetcode]Largest Rectangle in Histogram
- LeetCode No.84 Largest Rectangle in Histogram 题解
- [LeetCode] Largest Rectangle in Histogram
- [LeetCode][Java] Largest Rectangle in Histogram
- 106_leetcode_Largest Rectangle in Histogram
- [Leetcode] Largest Rectangle in Histogram
- leetcode - Largest Rectangle in Histogram
- Leetcode:Largest Rectangle in Histogram