SOURCE

// 猴子吃香蕉 求规定时间内的最慢速度
// 输入: piles = [30,11,23,4,20], H = 6
// 输出: 23


var minEatingSpeed = function (piles, h) {
    let left = 1 // 最慢速度
    let right = Math.max(...piles) // 最快速度
    let canEat = (speed) => {
        let sumTime = piles.reduce((acc, curr) => {
            acc += Math.ceil(curr/speed)
            return acc
        }, 0)
        return sumTime <= h
    }
    while(left < right){
        let mid = Math.floor((left + right)/2)
        if(canEat(mid)){
            right = mid
        } else {
            left = mid + 1
        }
    }
    return left
}
console.log(minEatingSpeed([30,11,23,4,20], 6))
console 命令行工具 X clear

                    
>
console