求墙之间有多少水洼

求墙之间有多少水洼

var arr=[2,0,2,1,3]

function edit(k){
    if(k<2){return 0;}
    if(arr[k]>arr[k-1]){
        var addNum=0
        var max=0
        for(var i=0;i<k-1;i++){
            max=Math.max(max,arr[i])
        }
        //水平面
        var level=Math.min(max,arr[k])
        var p=k-1
        while(arr[p]<level){
            addNum=addNum+level-arr[k-1]
            p--
        }
        return edit(k-1)+addNum
    }else{
        return edit(k-1)
    }

}
console.log(edit(arr.length-1))

  

原文地址:https://www.cnblogs.com/caoke/p/5342057.html