5/30/2014

62. Trapping Rain Water

public class Solution {
    public int trap(int[] A) {
        if (A.length==0) return 0;
       
        int[] left = new int[A.length];
        int[] right = new int[A.length];
        int res = 0;
       
        left[0] = A[0];
        for (int i=1; i<A.length; i++) {
            left[i] = A[i]>left[i-1]?A[i]:left[i-1];
        }
       
        right[A.length-1] = A[A.length-1];
        for (int i=A.length-2; i>=0; i--) {
            right[i] = A[i]>right[i+1]?A[i]:right[i+1];
        }
       
        for (int i=1; i<A.length-1; i++) {
            res+=Math.min(left[i], right[i])-A[i];
        }
       
        return res;
    }
}

没有评论:

发表评论