[leetcode]Largest Rectangle in Histogram
2013-07-20 16:20
567 查看
class Solution { public: int largestRectangleArea(vector<int> &height) { // Start typing your C/C++ solution below // DO NOT write int main() function if(height.empty()) return 0; int N = height.size(); vector<int> left(N, 0); vector<int> right(N, 0); stack<int> s1; s1.push(0); for(int i = 1; i < N; i++){ if(height[i] > height[s1.top()]){ left[i] = 0; }else{ while(!s1.empty() && height[i] <= height[s1.top()]){ s1.pop(); } if(s1.empty()){ left[i] = i; }else{ left[i] = i-s1.top()-1; } } s1.push(i); } stack<int> s2; s2.push(N-1); for(int i = N-2; i >= 0; i--){ if(height[i] > height[s2.top()]){ right[i] = 0; }else{ while(!s2.empty() && height[i] <= height[s2.top()]){ s2.pop(); } if(s2.empty()){ right[i] = N-i-1; }else{ right[i] = s2.top()-i-1; } } s2.push(i); } for(int i = 0; i < N; i++){ left[i] =(left[i] + right[i] + 1) * height[i]; } return *max_element(left.begin(), left.end()); } };
相关文章推荐
- LeetCode 笔记系列 17 Largest Rectangle in Histogram
- 柱状图内最大的矩形面积 Largest Rectangle in Histogram @LeetCode
- LeetCode: Largest Rectangle in Histogram
- Largest Rectangle in Histogram--LeetCode
- leetcode Largest Rectangle in Histogram 单调栈
- [Leetcode] 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
- [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 极品解法的解释
- LeetCode84 Largest Rectangle in Histogram
- Leetcode | Largest Rectangle in Histogram
- LeetCode Largest Rectangle in Histogram又一个极品程序
- leetcode笔记:Largest Rectangle in Histogram
- [LeetCode]—Largest Rectangle in Histogram 求直方图最大填充矩形面积