您的位置:首页 > 其它

[leetcode 84] Largest Rectangle in Histogram

2015-01-01 19:04 411 查看
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 =
10
unit.

For example,

Given height =
[2,1,5,6,2,3]
,

return
10
.
class Solution {
public:
int largestRectangleArea(vector<int> &height) {
height.push_back(0);
const int n = height.size();
stack<int> path;
int res = 0;
for (int i = 0; i < n; ) {
if (path.empty() || height[i] > height[path.top()]) {
path.push(i++);
} else {
int tmp = path.top();
path.pop();
res = max(res, height[tmp]*(path.empty()?i:i-path.top()-1));
}
}
return res;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: