您的位置:首页 > 其它

Largest Rectangle in Histogram

2014-04-30 22:17 351 查看
class Solution {
public:
int largestRectangleArea(vector<int> &height) {
if(height.empty()) return 0;
int maxArea=0;
stack<int> stk;//栈中保存非降的高度的下标
height.push_back(0);//用来处理掉栈中的数据
for(size_t i=0;i!=height.size();)
{
if(stk.empty() || height[i] >= height[stk.top()])
{
stk.push(i);
i++;
}
else
{
int h=height[stk.top()];//高度
stk.pop();
int w=stk.empty()?i:(i-stk.top()-1);//宽度
maxArea=(h*w)>maxArea?(h*w):maxArea;
}
}
return maxArea;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: