首页 > 其他 > 详细

LeetCode 42

时间:2016-04-29 07:04:42      阅读:169      评论:0      收藏:0      [点我收藏+]

Trapping Rain Water

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.

 

 1 #include<stdio.h>
 2 
 3 int trap( int* height, int heightSize ){
 4 
 5     int left = 0;
 6     int right = heightSize - 1;
 7     int middle = 0;
 8     int water = 0;
 9 
10     while( left < right ){
11 
12         if( height[left] < height[right]){
13             middle = middle > height[left] ? middle : height[left];
14             water = water + middle - height[left];
15             left ++;
16         }else{
17             middle = middle > height[right] ? middle : height[right];
18             water = water + middle - height[right];
19             right --;
20         }
21     }
22     printf("Water is %d\n", water);
23     return water;
24 }
25 
26 int main(){
27     int height[] = {0,1,0,2,1,0,1,3,2,1,2,1};
28     int heightSize = 12;
29     trap( height, heightSize );
30     return 0;
31 }

 

LeetCode 42

原文:http://www.cnblogs.com/Juntaran/p/5444967.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!