class Solution:
def minEatingSpeed(self, piles: List[int], H: int) -> int:
left = 1
right = sum(piles)
while left < right:
mid = (left + right) // 2
h = self.check(piles, mid)
if h > H:
left = mid + 1
else:
right = mid
return left
def check(self, piles, k):
h = 0
for pile in piles:
if pile % k == 0:
h = h + pile // k
else:
h = h + pile // k + 1
return h
05-24
7561
01-05
229
07-19
669