gary@interview:~/interview/coding/875-koko-eating-….md$
$ cat ./coding/875-koko-eating-bananas.md
[Coding]

875. Koko Eating Bananas

────────────────────────────────────────────────────────────

875. Koko Eating Bananas

參考 1011. Capacity To Ship Packages Within D Days

class Solution:
    def minEatingSpeed(self, piles: List[int], h: int) -> int:
        

        def helper(speed): # 計算 koko 要花多少時間吃完
            hours = 0
            for pile in piles:
                hours += (pile + speed - 1) // speed
            return hours

        
        left = 1
        right = 1000000000 + 1

        while left < right:
            speed = left + (right - left) // 2
            if helper(speed) <= h: # 當前 speed 足夠快可以在 h 時間內吃完
                right = speed
            else: # 當前 speed 不夠快可以在 h 時間內吃完
                left = speed + 1
        
        # while 終止時 left == right 此時回傳 left 或是 right 都是可以的
        
        return right
--tags#Binary Search
$ ls ./coding/ | grep -v 875-koko-eating-bananas
265. Paint House II256. Paint House143. Reorder List1762. Buildings With an Ocean View
← cd ../codingcd ~