[leetcode刷题系列]Largest Rectangle in Histogram
2013-08-08 21:01
381 查看
经典题了, 利用stack优化, O(n)
const int MAXN = 1e6 + 10; int n; int pleft[MAXN], pright[MAXN]; stack<int> stk; class Solution { public: int largestRectangleArea(vector<int> &height) { // Start typing your C/C++ solution below // DO NOT write int main() function n = height.size(); //left for(int i = n - 1; i >= 0; -- i){ while(!stk.empty()){ int now = stk.top(); if(height[i] < height[now]){ pleft[now] = i; stk.pop(); }else break; } stk.push(i); } while(!stk.empty()){ pleft[stk.top()] = -1; stk.pop(); } // right for(int i = 0; i < n; ++ i){ while(!stk.empty()) if(height[i] < height[stk.top()]){ pright[stk.top()] = i; stk.pop(); }else break; stk.push(i); } while(!stk.empty()){ pright[stk.top()] = n; stk.pop(); } int ans = 0; for(int i = 0; i < n; ++ i) ans = max(ans, height[i] *(pright[i] - pleft[i] - 1)); return ans; } };
相关文章推荐
- LeetCode 笔记系列 17 Largest Rectangle in Histogram
- Leetcode-Largest Rectangle in Histogram
- LeetCode Largest Rectangle in Histogram
- 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--Largest Rectangle in Histogram
- [leetcode]Largest Rectangle in Histogram @ Python
- [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)java
- LeetCode(84) Largest Rectangle in Histogram
- leetcode Largest Rectangle in Histogram
- Java for LeetCode 084 Largest Rectangle in Histogram【HARD】
- LeetCode: Largest Rectangle in Histogram