42 - Trapping Rain Water
JAVA
public class Trapping_Rain_Water {
public static void main(String[] args) {
Trapping_Rain_Water out = new Trapping_Rain_Water();
Solution_local_minimum s = out.new Solution_local_minimum();
System.out.println(s.trap(new int[]{5,2,1,2,1,5}));
}
C++
class Solution {
public:
int trap(vector<int>& A) {
int N = A.size(), ans = 0;
vector<int> left(N, 0), right(N, 0);
for (int i = 1; i < N; ++i) left[i] = max(left[i - 1], A[i - 1]);
for (int i = N - 2; i >= 0; --i) right[i] = max(right[i + 1], A[i + 1]);
for (int i = 1; i < N - 1; ++i) ans += max(0, min(left[i], right[i]) - A[i]);
return ans;
}
};
Comments
Post a Comment