Back

Koko Eating Bananas

medium

Koko loves to eat bananas. There are n piles of bananas, the i-th pile has piles[i] bananas. The guards have gone and will come back in h hours.

Koko can decide her bananas-per-hour eating speed of k. Each hour, she chooses some pile of bananas and eats k bananas from that pile. If the pile has less than k bananas, she eats all of them instead and will not eat any more bananas during this hour.

Koko likes to eat slowly but still wants to finish eating all the bananas before the guards return.

Return the minimum integer k such that she can eat all the bananas within h hours.

Test Cases

Copy an input into the main harness and Run to verify
Input
piles = [3,6,7,11], h = 8
Expected Output
4
Input
piles = [30,11,23,4,20], h = 5
Expected Output
30
Input
piles = [30,11,23,4,20], h = 6
Expected Output
23

Constraints

  • 1 <= piles.length <= 10^4
  • piles.length <= h <= 10^9
  • 1 <= piles[i] <= 10^9

Hints

Hint 1 — click to reveal

Can you check if a given speed k finishes in time? That check is O(n).

Hint 2 — click to reveal

Binary search the ANSWER: speed range is 1..max(piles).

Java Compiler

Powered by OneCompiler. Starter code loads automatically — edit and hit Run.