class Solution {
public:
int trap(int A[], int n) {
int last = 0;
int totalWater = 0;
for (int i = 1; i < n; ++i) {
if(A[i] >= A[last]) {
int water = 0;
for(int j = last +1; j < i; ++j) {
water += A[last] - A[j];
}
totalWater += water;
last = i;
}
}
//reverse
int rlast = n - 1;
for(int i = n - 2; i >= last; --i) {
if(A[i] >= A[rlast]) {
int water = 0;
for(int j = rlast - 1; j > i; --j) {
water += A[rlast] - A[j];
}
totalWater += water;
rlast = i;
}
}
return totalWater;
}
};
4/06/2014
Leetcode -- Trapping Rain Water
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment