Trapping Rain Water—LeetCode(2015/4/8腾讯基础研究线上笔试题)
来源:互联网 发布:大数据工程师培训 编辑:程序博客网 时间:2024/06/15 02:10
Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.
For example,
Given [0,1,0,2,1,0,1,3,2,1,2,1]
, return 6
.
The above elevation map is represented by array [0,1,0,2,1,0,1,3,2,1,2,1]. In this case, 6 units of rain water (blue section) are being trapped. Thanks Marcos for contributing this image!
1、双指针,一次遍历
int trap(int A[], int n) { if(n<=2) return 0; int low=0; int high=n-1; int waterSum=0; int indexMin=0; while(low<high) { while(A[low]<=indexMin&&low<high) { waterSum+=(indexMin-A[low]); low++; } while(A[high]<=indexMin&&low<high) { waterSum+=(indexMin-A[high]); high--; } indexMin=A[low]>=A[high]?A[high]:A[low]; } return waterSum; }
2、可以先找到序列中的最大值,再从两端向中间遍历,此时时间复杂度为O(2n);
0 0
- Trapping Rain Water—LeetCode(2015/4/8腾讯基础研究线上笔试题)
- LeetCode: Trapping Rain Water
- LeetCode : Trapping Rain Water
- [LeetCode] Trapping Rain Water
- [Leetcode] Trapping Rain Water
- [Leetcode] Trapping Rain Water
- [LeetCode]Trapping Rain Water
- LeetCode-Trapping Rain Water
- [leetcode] Trapping Rain Water
- [LeetCode] Trapping rain water
- Leetcode: Trapping Rain Water
- Leetcode:Trapping Rain Water
- [LeetCode] Trapping Rain Water
- <Leetcode>Trapping Rain Water
- Leetcode Trapping Rain Water
- leetcode Trapping Rain Water
- leetcode Trapping Rain Water
- LeetCode Trapping Rain Water
- Ansible系列(6): Yum模块
- Android自定义View学习笔记03
- 字符串M化成以N为单位的段
- 使用Baidu的Ueditor
- 解决shiro会话标识未更新问题
- Trapping Rain Water—LeetCode(2015/4/8腾讯基础研究线上笔试题)
- 机器学习实战 (2)决策树 (二) 决策树ID3算法的优缺点
- java核心技术笔记 继承
- SDUT2416 Fruit Ninja II
- Uiautomator Api浅析
- Android最佳性能实践(四)——布局优化技巧
- VS2010 error LNK1123转换到 COFF 期间失败
- js动态获取参数
- burpsuite 启动问题