您的位置:首页 > 移动开发

【leetcode】Trapping Rain Water

2015-05-08 10:21 337 查看
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.

class Solution {
public:
int trap(vector<int>& height) {
int max=0;
for(int i=0;i<height.size();i++)
{
if(height[i]>height[max])
max=i;
}

int water=0;

for(int i=0,peak=0;i<max;i++)
if(height[i]>peak)
peak=height[i];
else
water=water+peak-height[i];

for(int i=height.size()-1,top=0;i>max;i--)
if(height[i]>top)
top=height[i];
else
water=water+top-height[i];

return water;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: