Leetcode 之Largest Rectangle in Histogram(40)
2016-05-28 14:22
274 查看
int largestRect(vector<int> &height) { stack<int> s;//定义一个单调递增栈 height.push_back(0);//定义单调递增栈的最后一个 int result = 0;//记录当前最大的面积 for (int i = 0; i < height.size();)//满足条件i才递增 { if (s.empty() || height[i]>s.top()) { s.push(i++);//只有当前元素大于栈顶元素是才入栈相应的序号,构造递增栈 } else { //当前元素小于栈顶元素时 int tmp = s.top();//保留栈顶元素 s.pop();//弹出直至当前元素大于栈顶元素,使栈仍然是递增的 // result = max(result, height[tmp]*(s.empty() ? i : i - s.top() - 1)); } } return result; }
View Code
注:上述代码有误,应该是height[s.top()]
相关文章推荐
- Android问题集锦
- 手机掉水里的终极解决方案!
- poj 2559 Largest Rectangle in a Histogram(单调栈)
- hdu 5697 刷题计划
- js jquery 实现html页面之间参数传递(单一参数、对象参数传递)
- github多人协作
- JSP---web.xml中设置前后台不同的头部和底部
- Destoon V6.0手机版伪静态规则不生效的error loading page解决方法
- oracle转mysql总结
- io加强
- 20个代码生成器框架
- 【iOS】build diff: /../Podfile.lock: No such file or directory
- CCScrollView注意事项
- Node.js中文API
- scala中的偏(部分)应用函数和偏函数的区别
- 每天刷个算法题20160523:骑士巡游的递归转非递归解法
- lua调试器与编辑器开源项目luacode(源自decoda)
- 机器人学 —— 轨迹规划(Sampling Method)
- LinkedHashMap的使用
- poj 2771 Guardian of Decency(最大独立集)