for (var i = 1; i < n; i++) { 从左到右 选出高个子
for (var i = n - 2; i >= 0; i--) { 从右到左 选出高个子
res += Math.min(arr[i], brr[i]) - crr[i]; 高个子中较小的个子 减去 凹陷的值 就是雨水啦
动态规划
var trap = function (crr) {
var n = crr.length;
var arr = new Array(n).fill(0);
arr[0] = crr[0];
for (var i = 1; i < n; i++) {
arr[i] = Math.max(arr[i - 1], crr[i]);
}
var brr = new Array(n).fill(0);
brr[n - 1] = crr[n - 1];
for (var i = n - 2; i >= 0; i--) {
brr[i] = Math.max(brr[i + 1], crr[i]);
}
var res = 0;
for (var i = 0; i < n; i++) {
res += Math.min(arr[i], brr[i]) - crr[i];
}
return res;
};