875. Koko Eating Bananas
- beware of dividing integer by float
class Solution(object):
def minEatingSpeed(self, piles, h):
left = 1
right = max(piles)
while left < right:
mid = (left + right) // 2
if self.canEatAll(piles, mid, h):
right = mid
else:
left = mid + 1
return left
def canEatAll(self, piles, speed, h):
time = 0
for pile in piles:
time += math.ceil(1.0 * pile / speed)
if time > h:
return False
return True