***LeetCode 42. Trapping Rain Water
来源:互联网 发布:数据库存储图片路径 编辑:程序博客网 时间:2024/05/17 09:44
https://leetcode.com/problems/trapping-rain-water/
最初思路是,用一个栈来存height,如果发现height[i] >= 栈顶 就计算一部分面积,时间复杂度似乎是O(n)
然后发现最后部分很难处理,比如 4 2 3。。然后没有过,,这个在考虑下 。。
很神奇的做法:
从两头向中间扫描,找当前的第二高的地方。然后求小面积:
题解
http://www.xuebuyuan.com/1586534.html
class Solution {public: int trap(vector<int>& height) { int sech = 0, ret=0; int left = 0, right = height.size()-1; while ( left < right ) { if(height[left] < height[right] ) { sech = max( sech, height[left] ); ret += sech - height[left]; left ++; } else { sech = max( sech, height[right] ); ret += sech - height[right]; right --; } } return ret; }};
Python代码:
class Solution(object): def trap(self, height): left = 0 sech = 0; ret = 0 right = len(height)-1 while( left < right ) : if height[left] < height[right]: sech = max(sech, height[left]) ret += sech - height[left] left += 1 else : sech = max(sech, height[right]) ret += sech - height[right]; right -= 1 return ret
感觉思路正常的做法: 找mountain 然后两个mountain之间,min(montain)-height[i]求和
感觉这样不是很容易写,,,不过也是O(n)
0 0
- [LeetCode]42.Trapping Rain Water
- LeetCode --- 42. Trapping Rain Water
- LeetCode 42.Trapping Rain Water
- [Leetcode] 42. Trapping Rain Water
- [leetcode] 42.Trapping Rain Water
- 【leetcode】42. Trapping Rain Water
- ***LeetCode 42. Trapping Rain Water
- Leetcode 42. Trapping Rain Water
- leetcode 42. Trapping Rain Water
- [LeetCode]42. Trapping Rain Water
- leetcode 42. Trapping Rain Water
- LeetCode 42. Trapping Rain Water
- LeetCode 42. Trapping Rain Water
- LeetCode 42. Trapping Rain Water
- leetcode.42. Trapping Rain Water
- [leetcode] 42. Trapping Rain Water
- LeetCode-42.Trapping Rain Water
- LeetCode 42. Trapping Rain Water
- ucgui 窗口管理及回调函数的应用
- fzuOJ 1058 大数吃小数
- 常用正则表达式
- 程序员发展路线
- 《数学之美》马尔科夫链的扩展-贝叶斯网络
- ***LeetCode 42. Trapping Rain Water
- struts2工作原理(转载)
- C++拷贝构造函数(深拷贝,浅拷贝)
- 网页中的服务器端和客户端脚本
- win7 64位操作系统中 Oracle 11g 安装教程(图解)
- (C++编程规范第5条)一个实体应该只有一个紧凑的职责
- 移动web应用开发——Sencha Touch篇(2)
- EXCEL追加Botton
- winCE 自定义控件开发之groupBox