算法题:接雨水

发布时间 2023-06-21 11:31:43作者: spyOlivia
/*接雨水,array是柱子高度,不考虑空间:思路是算出每个柱子能存多少水,然后相加;每个柱子存水高度=(左侧最高和右侧最高的最小值)-自身高度*/
let array = [0,1,0,2,1,0,1,3,2,1,2,1]
let length = array.length
let allNumber = 0
for(let i=1;i<length-1;i++){
let left_max = 0
let right_max = 0
for(let j=i;j<length;j++){
right_max = Math.max(right_max,array[j])
}
for(let j=i;j>=0;j--){
left_max = Math.max(left_max,array[j])
}
let number = Math.min(left_max,right_max) - array[i]
allNumber = allNumber+number
}