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;
}
}
没有评论:
发表评论