LeetcodeLargest -84- Rectangle in Histogram 94.01%
来源:互联网 发布:java map containskey 编辑:程序博客网 时间:2024/04/30 14:53
今天第一天开始刷Leetcode,一不小心抽到了一道hard,搞了一下午也没搞出来,半夜突然有了灵感,想用递归试一试,结果调了调居然AC了,效率还高于94.01%·······
先把代码贴在下面了,图解什么的······该休息了,改天吧
class Solution {public: int largestRectangleArea(vector<int>& heights) { if ((heights.size() == 0)) return 0; //判断输入不为空 vector<int>::iterator it = heights.begin(), it_end=heights.end(); int max = 0, remain=0; while (it != heights.end()) //跳出递归的两种条件:it迭代至end、当前项小于最底层递归的高度标记 //第二种情况需要将上次递归中返回的count作为rest带入下一次递归 remain = recursion_84(it, it_end, max, remain ); return max; } int recursion_84(vector<int>::iterator &it, vector<int>::iterator &it_end, int &max, int past) { int count = past, height = *it, remain=0, temp=0;//进入函数时it为第一项,本层递归的识别标志为height while (height!=0)//主循环 { while ((it != it_end) && (height == *it))//将与该层标志相等的项目累加至count count++, it++, remain=0; if ((it == it_end)||(height > *it))//迭代至尾部,或下一层低于本层标记时->判断是否为max,并结束本层递归 { if (max < count*height) max = count*height; return count; } else//下一项高于本层标记,进入下一层递归 { //下层递归结束后返回下层递归的count累加至本层count之上 //将past存入remain,然后继续主循环 temp = recursion_84(it, it_end, max, remain); count +=temp-remain; remain = temp; } } it++; return 0; }};
0 0
- LeetcodeLargest -84- Rectangle in Histogram 94.01%
- 84Largest Rectangle in Histogram
- [leetcode 84] Largest Rectangle in Histogram
- 【LeetCode】[84] Largest Rectangle in Histogram
- leetcode || 84、Largest Rectangle in Histogram
- 84:Largest Rectangle in Histogram【数组】【栈】
- LeetCode---(84)Largest Rectangle in Histogram
- 【Leetcode】Largest Rectangle in Histogram #84
- leetcode 84 :Largest Rectangle in Histogram
- leetcode 84: Largest Rectangle in Histogram
- [leetcode-84]Largest Rectangle in Histogram(c++)
- LeeetCode #84 Largest Rectangle in Histogram
- LeetCode(84) Largest Rectangle in Histogram
- leetcode 84 Largest Rectangle in Histogram
- LeetCode 84 Largest Rectangle in Histogram
- leetcode 84 Largest Rectangle in Histogram
- 84、Largest Rectangle in Histogram(Hard)
- Leetcode 84 Largest Rectangle in Histogram
- [智能车问题]电磁平衡组方向控制
- Android:NineGridLayout — 仿微信朋友圈和QQ空间的九宫格图片展示自定义控件
- 使用mac电脑添加外置屏幕时候把外置屏幕设置成主屏幕
- MAC系统下 win7虚拟机上网应该怎么设置啊
- 2016百度之星资格赛
- LeetcodeLargest -84- Rectangle in Histogram 94.01%
- 第一次
- BUG:Yarn resourceManager 无法启动
- 在android studio中使用NDK(1)
- php学习心得
- Oracle 数据库中 用特殊的数字代替某个意思 比如 0 男 1 女
- Mac下使用Eclipse实现Android中调用C/C++(NDK)基础详细教程
- git使用
- linux修改swap大小