【柱形图】Trapping Rain Water
来源:互联网 发布:淘宝助理教程视频 编辑:程序博客网 时间:2024/05/15 23:53
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!
解法:选取最大值作为中间立柱,分别从两头求取存水量;用curMax记录当前左或右边的最大高度,因为有中间立柱挡住肯定能存水,curMax-A[i]则为存水量
参考:http://www.cnblogs.com/lichen782/p/Leetcode_Trapping_Rain_Water.html
public class Solution { public int trap(int[] A) { int len = A.length; if(len <= 2) return 0; int water = 0; int curMax = 0; int mid = 0; for(int i=0; i<len; i++){ if(A[mid] < A[i]) mid = i; } curMax = 0; for(int i=0; i<=mid; i++){ if(A[i] > curMax) curMax = A[i]; else water += curMax - A[i]; } curMax = 0; for(int i=len-1; i>=mid; i--){ if(A[i] > curMax) curMax = A[i]; else water += curMax - A[i]; } return water; }}
解法:选取最大值作为中间立柱,分别从两头求取存水量
参考:http://www.cnblogs.com/lichen782/p/Leetcode_Trapping_Rain_Water.html
0 0
- 【柱形图】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
- Trapping Rain Water
- [leetcode] Trapping Rain Water
- Trapping Rain Water
- [LeetCode] Trapping rain water
- Leetcode: Trapping Rain Water
- 一定要坚持下去 IOS
- ubuntu12.04下redis安装/配置
- ASP.NET 三层架构设计
- initgraph函数(讲解)
- 华为编程-删除字符串中与前面重复的字符串
- 【柱形图】Trapping Rain Water
- CDOJ_149 解救小Q
- Hadoop日志到底存在哪里?
- 28335 pwm介绍
- 关于OC的协议和委托,转载一篇博文
- SQL Server 2000 和 SQL Server 2005 加载驱动和url语句 区别
- OpenGL第一话 OpenGL环境搭建 补充
- 按键驱动的恩恩怨怨之中断方式
- Quad Tiling