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
| package com.demo.s42;
public class Solution { public int trap(int[] height) { if(height.length == 0) { return 0; } int[] maxLeft = new int[height.length]; maxLeft[0] = height[0]; for(int i = 1; i < height.length; i++) { maxLeft[i] = Math.max(maxLeft[i-1], height[i]); } int[] maxRight = new int[height.length]; maxRight[height.length -1] = height[height.length-1]; for(int i = height.length-2; i >= 0; i--) { maxRight[i] = Math.max(maxRight[i + 1], height[i]); }
int sum = 0; for(int i = 0; i < height.length; i++) { sum += Math.min(maxLeft[i], maxRight[i]) - height[i]; } return sum; } }
|