接雨水
public class Text {
public static int max(int a, int b) {
return a >= b ? a : b;
}
public static int trap(int[] arr) {
if (arr.length == 0) {
return 0;
}
int n = arr.length;
int left = 0;
int right = n - 1;
int ans = 0;
int l_max = arr[0];
int r_max = arr[n - 1];
while (left <= right) {
l_max = max(l_max, arr[left]);
r_max = max(r_max, arr[right]);
if (l_max < r_max) {
ans += l_max - arr[left];
left++;
} else {
ans += r_max - arr[right];
right--;
}
}
return ans;
}
public static void main(String[] args) throws IOException {
int[] arr = { 0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1 };
System.out.println(trap(arr));
}
}
完整:https://mp.weixin.qq.com/s/7-1URPxwTf_LvfDep6gT0g