Trapping Rain Water
来源:互联网 发布:java简历项目经验案例 编辑:程序博客网 时间:2024/06/05 16:53
Trapping Rain Water
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.
看了网上的说明说是用two pointer解法,这个可能确实一个比较完美的解法。
后来又发现了一个更加接地气的解法,
找到最长的那块木板,假设其下标为maxIdx。
分别从左侧和右侧向其逼近。
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.
看了网上的说明说是用two pointer解法,这个可能确实一个比较完美的解法。
后来又发现了一个更加接地气的解法,
找到最长的那块木板,假设其下标为maxIdx。
分别从左侧和右侧向其逼近。
这个解法既容易理解也还是O(n)时间度的。这个解法符合思路简洁美
int trap(int A[], int n) {int low = 0, high = n-1;int barrier = 0;int volume = 0;while (low < high){if (A[low] > A[high]){if (barrier > A[high]) volume += barrier - A[high];else barrier = A[high];high--;}else {if (barrier > A[low])volume += barrier - A[low];elsebarrier = A[low];low++;}} return volume;}
0 0
- LeetCode: Trapping Rain Water
- LeetCode : Trapping Rain Water
- Trapping Rain Water
- [LeetCode] Trapping Rain Water
- [Leetcode] Trapping Rain Water
- [Leetcode] Trapping Rain Water
- Trapping Rain Water
- Trapping Rain Water
- [LeetCode]Trapping Rain Water
- Trapping Rain Water
- Trapping Rain Water
- LeetCode-Trapping Rain Water
- Trapping Rain Water
- [leetcode] Trapping Rain Water
- Trapping Rain Water
- [LeetCode] Trapping rain water
- Leetcode: Trapping Rain Water
- 38 - Trapping Rain Water
- 不是技术牛人,如何拿到国内IT巨头的Offer
- android 使用keystore 签名apk
- 不是技术牛人,如何拿到国内IT巨头的Offer
- 深入理解计算机系统 家庭作业 2.78
- sql2008-window验证改身份验证
- Trapping Rain Water
- AJAX的刷新和前进后退问题解决
- MFC打开对话框和浏览文件夹操作
- 永远都不要做的10件事
- spark 安装与运行
- Spring中的事务管理方式
- NSString属性声明中的copy和retain区别
- 设计模式之单件模式
- 第一篇博客