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!
the key problem is Get B[i] and C[i] ,where B[i]
means the max forward, and C[i] means max backward.
Sum += Min(B[i] ,C[i])-A[i] >0?Min(B[i]
,C[i])-A[i]:0
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
|
[LeetCode] [Trapping Rain Water 2012-03-10]