# AspBucket

## DSA problem solution: 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 can trap after raining.

Example 1:

Input: height = [0,1,0,2,1,0,1,3,2,1,2,1]

Output: 6

Example 2:

Input: height = [4,2,0,3,2,5]

Output: 9

Solution:

```public class Solution {
public int Trap(int[] height) {
int[] leftheight = new int[height.Length];
int[] rightheight = new int[height.Length];
int maxleftheight=0;
int maxrightheight=0;
int trappedwater =0;

for(int i=0;i<height.Length;i++)
{
if(i>0)
{
if(height[i-1]>maxleftheight)
{
maxleftheight = height[i-1];
}
}

leftheight[i] = maxleftheight;
}

for(int i=height.Length-1;i>=0;i--)
{
if(i<(height.Length-1))
{
if(height[i+1]>maxrightheight)
{
maxrightheight = height[i+1];
}
}
rightheight[i] = maxrightheight;
}

for(int i=0;i<height.Length;i++)
{
int minlevel = Math.Min(rightheight[i],leftheight[i]);
Console.WriteLine("Index:"+i+ " Left:"+leftheight[i]+" Right:"+rightheight[i]);
if(minlevel>height[i]){
trappedwater+= (minlevel-height[i]);
}
}

return trappedwater;
}
}
```