875. 爱吃香蕉的珂珂

exiaohu 于 2022-06-07 发布

题目链接:875. 爱吃香蕉的珂珂

二分查找。

from typing import List


class Solution:
    def _min_eating_speed(self, piles: List[int], h: int, k: int) -> bool:
        return sum((pile + k - 1) // k for pile in piles) <= h

    def minEatingSpeed(self, piles: List[int], h: int) -> int:
        assert len(piles) <= h

        upper, lower = max(piles), 1
        while lower < upper:
            mid = (lower + upper) // 2
            if self._min_eating_speed(piles, h, mid):
                upper = mid
            else:
                lower = mid + 1
        return lower