LeetCode-Largest Rectangle in Histogram
2014-08-08 16:57
393 查看
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 =
The largest rectangle is shown in the shaded area, which has area =
For example,
Given height =
return
Solution:
Code:
<span style="font-size:14px;">class Solution {
public:
int largestRectangleArea(vector<int> &height) {
int length = height.size();
stack<int> stk;
int result = 0;
for (int index = 0; index < length;) {
if (stk.empty() || height[stk.top()] <= height[index])
stk.push(index++);
else {
int position = stk.top();
stk.pop();
result = max(result, height[position]*(stk.empty()?index:(index-1-stk.top())));
}
}
while (!stk.empty()) {
int position = stk.top();
stk.pop();
result = max(result, height[position]*(stk.empty()?length:(length-1-stk.top())));
}
return result;
}
};</span>
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],
return
10.
Solution:
Code:
<span style="font-size:14px;">class Solution {
public:
int largestRectangleArea(vector<int> &height) {
int length = height.size();
stack<int> stk;
int result = 0;
for (int index = 0; index < length;) {
if (stk.empty() || height[stk.top()] <= height[index])
stk.push(index++);
else {
int position = stk.top();
stk.pop();
result = max(result, height[position]*(stk.empty()?index:(index-1-stk.top())));
}
}
while (!stk.empty()) {
int position = stk.top();
stk.pop();
result = max(result, height[position]*(stk.empty()?length:(length-1-stk.top())));
}
return result;
}
};</span>
相关文章推荐
- [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-084:Largest Rectangle in Histogram
- LeetCode 笔记系列 17 Largest Rectangle in Histogram
- [LeetCode] Largest Rectangle in Histogram、Maximal Rectangle
- [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 TODO O(N)
- LeetCode Online Judge 题目C# 练习 - Largest Rectangle in Histogram