875. Koko Eating Bananas
Input: piles = [3,6,7,11], H = 8
Output: 4Input: piles = [30,11,23,4,20], H = 5
Output: 30Input: piles = [30,11,23,4,20], H = 6
Output: 23// Binary Search
int minEatingSpeed(vector<int>& piles, int H) { // time: O(n * log(max pile)); space: O(1)
int low = 1, high = *max_element(piles.begin(), piles.end());
while (low < high) {
int mid_K = low + (high - low) / 2;
int hourNeeded = 0;
for (int pile : piles) {
hourNeeded += pile / mid_K;
if (pile % mid_K != 0) ++hourNeeded;
}
if (hourNeeded > H) low = mid_K + 1;
else high = mid_K;
}
return low;
}Last updated