题目: 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。题目链接
我的JavaScript解法
/**
* @param {number[]} height
* @return {number}
*/
var trap = function(height) {
let result = 0;
let left=0, right = height.length -1;
let leftMax = 0, rightMax = 0;//左右两边最大高度
while(left < right) {
leftMax = Math.max(leftMax, height[left]);//左边最大值
rightMax = Math.max(rightMax, height[right]);//右边最大值
if (height[left] < height[right]) {
result += leftMax - height[left];
left++
} else {
result += rightMax - height[right];
right--
}
}
return result
};
**解析:**双指针解法
- 时间复杂度:
- 空间复杂度: