【一天一道LeetCode】#42. Trapping Rain Water
来源:互联网 发布:小学生作文辅导书 知乎 编辑:程序博客网 时间:2024/06/05 16:34
一天一道LeetCode系列
(一)题目
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!
(二)解题
题目需要求的是矩阵作为容器能盛多少体积的水。
方法可以参考我的这篇博客:【一天一道LeetCode】#11Container With Most Water
/*思路:考虑到所盛的水取决于容器两端中小的那一端。因此用两个指针,分别指向头和尾,依次向中间移动。1.如果左边小,则左边向右移动一格,这个时候需要判断向右移动一格后①如果高度大于原来的就表示盛不下水②如果小于原来的则表示有凹下去的部分,这个时候计算高度差就代表能盛多少水。(右边比左边高,可以保证右边不溢出)2.如果右边小,则右边向左移动一格,这个时候同1一样判断。*/class Solution {public: int trap(vector<int>& height) { if(height.size()<=2) return 0; int ret = 0; int l = 0; int r = height.size()-1; int left = height[0]; int right = height[r]; while(l<r) { if(left<=right) { l++; if(height[l]>=left) { left = height[l]; } else ret+=(left-height[l]); } else { r--; if(height[r]>=right) { right = height[r]; } else ret +=(right-height[r]); } } return ret; }};
2 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
- 从源码的角度带你分析Glide整体加载流程以及设计模式
- Android进阶——构建UI布局的多种方式总结
- Omni completion (^O^N^P) Pattern not found
- 第三章处理数据
- andFix进行热修补
- 【一天一道LeetCode】#42. Trapping Rain Water
- VS2015快捷键
- Mysql导入大容量SQL文件数据问题
- CException Application runtime path "/var/www/*******/protected/runtime" is not valid. Please make
- 别人用Myeclipse没问题,到我的eclipse中跑不起来
- 监督学习——线性回归(一)
- Android 完美实现图片圆角和圆形(对实现进行分析)
- Android与Js的简单交互例子
- RxJava入门[转载一篇很棒的文]