一、题目地址
https://leetcode-cn.com/problems/trapping-rain-water/
二、思路链接
https://www.bilibili.com/video/BV1HE411Z7By?from=search&seid=342064275950392978
三、代码地址
/**
* @param {number[]} height
* @return {number}
*/
var trap = function(height) {
let result = 0;
let maxValue = -1;
let maxAddr = -1;
// 获取数组中顶峰值的下标,即maxAddr
for(let i=0; i<height.length; i++) {
if(height[i] >= maxValue) {
maxValue = height[i];
maxAddr = i;
}
}
// 左半部分处理
for(let left = 0; left<=maxAddr; left++) {
for(let i=left+1; i<=maxAddr; i++) {
if(height[left] > height[i]) {
result += height[left] - height[i];
}else {
left = i;
}
}
}
// 右半部分处理
for(let right=height.length-1; right>=maxAddr; right--) {
for(let i=right-1; i>=maxAddr; i--) {
if(height[right] > height[i]) {
result += height[right] - height[i];
}else {
right = i;
}
}
}
return result;
};