题解:Trapping Rain Water
来源:互联网 发布:觉醒 凯特肖邦 知乎 编辑:程序博客网 时间:2024/06/06 05:47
题目如下:
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!
解题方面,从前到后遍历,判断左右高度后累增水的数量,这个数量应该要是较低一边的数量(较高的减去较小的),并且坐标有相应的增大/减小。设置的两个坐标一个从最左边开始一个从最右边开始,依据前面的规则向中间靠拢。当左边坐标不再小于右边完成。代码如下:
int trap(vector<int>& height) {int result = 0; int i = 0, k = height.size() - 1; int h; while (i < k) { if (height[i] < height[k]) { h = height[i++]; while (i < k && height[i] <= h) { result += h - height[i]; i++; } }else { h = height[k--]; while (i < k && height[k] <= h) { result += h - height[k]; k--; } } } return result;}
0 0
- 题解:Trapping Rain Water
- LeetCode 题解(14):Trapping Rain Water
- LeetCode题解——Trapping Rain Water
- leetcode题解-42. Trapping Rain Water
- leetcode题解-42. Trapping Rain Water
- LeetCode 42. Trapping Rain Water 题解
- 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
- 数组的排序算法
- shell中“>”和“>>”的区别
- learning-urdf-02
- cxf整合spring练习
- Mac安装MySQL
- 题解:Trapping Rain Water
- 队列和栈的区别
- JAVA算法基础 求最大公约数和最小公倍数
- 第十四届浙江省赛 ZOJ 3962~3965 【E,F,G,H】 (其他并不准备补。)
- JavaScript 3.1 补充:谈谈JS的全局变量跟局部变量(转载)
- 关于JavaBean的PropertyChangeListener
- 坚持#第171天~尽己所能、辛德勒、珍惜
- I5 4590 台式机安装黑苹果最新版笔记
- 十三年来,淘宝走过的大数据之路