leetcode 42. Trapping Rain Water
来源:互联网 发布:淘宝凳子 编辑:程序博客网 时间:2024/05/29 16:11
相关问题
11. Container With Most Water
42. Trapping Rain Water
407. Trapping Rain Water II
Discription
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.
思路
双指针:用两个指针分别表示容器的左边界 left 和右边界 right。
选取 height[left] 和 height[right] 中较短的边,不妨设 minH = height[left] <= height[right]。
向右移动left,可能出现如下两种情况:
- height[left + 1] > minH。则重新选择瓶颈边并更新 minH;
- height[left + 1] <= minH。即 height[left + 1] <= height[left] 且 height[left + 1] <= height[right]。由 minH 的更新过程可知, minH 为 left + 1 以左最高边界高度, 且 height[left] 为瓶颈边,故在 left + 1 处可蓄水 minH - height[left + 1]。
时间复杂度:
空间复杂度:
代码
class Solution {public: //双指针 int trap(vector<int>& height) { if (height.empty()) return 0; int left = 0, right = height.size() - 1; int sum = 0; while (left < right) { int minH = min(height[left], height[right]); if (height[left] <= height[right]) { left++; while (left < right && height[left] <= minH) { sum += minH - height[left]; left++; } } else { right--; while (left < right && height[right] <= minH) { sum += minH - height[right]; right--; } } } return sum; }};
特殊样例
{4, 1, 0, 2}
从局部看{1, 0, 2}的两条边界高度为
但从整体看,边界高度为
阅读全文
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
- HDU 4858项目管理(STL容器)
- Python 生成随机图片验证码
- c语言中的移位运算符
- (java项目)servlet手动部署到tomcat的webapps中
- Advanced System Optimizer(金牌Windows系统优化工具)官方中文注册版V3.9.3645.16880下载 | 内置advanced system optimizer 激活码
- leetcode 42. Trapping Rain Water
- SGU 144. Meeting(概率)
- 在别人的机器上(已有自己的github帐号)提交代码到自己的github
- jvm 总体梳理
- pythonAI五子棋
- jQuery学习二-动画回调和多个动画执行
- HDU 5512 Pagodas (GCD 博弈)
- Python 进程,子进程( multiprocessing.Process() )
- org.springframework.beans.factory.BeanCreationException: Error...... java.lang.IllegalArgumentExcept