给定 n
个非负整数表示每个宽度为 1
的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。
示例 1:
输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。
示例 2:
输入:height = [4,2,0,3,2,5] 输出:9
思路:双指针
1、设置左右指针,维护左右当前最高高度,维护目前所接雨水总量
2、如果左最高高度大于右最高高度,则将当前左指针位置能接雨水量(lmax-height[left])计入总容量,然后左指针右移一位;否则计算右指针位置能接雨水量
3、当left>right时停止,返回结果
var trap = function(height) {
let res = 0,left &