Koko Eating Bananas LeetCode solution in Java
1class Solution {2public int minEatingSpeed(int[] piles, int h) {3int max = 0;4int ans = 0;5for (int i = 0; i < piles.length; i++) {6max = Math.max(piles[i], max);7}8if (piles.length == h) return max;9int left = 1;10int right = max;11while (left <= right) {12int mid = left + (right - left) / 2;13double num = 0;14int time = 0;15for (int i = 0; i < piles.length; i++) {16num = (double) piles[i] / (mid);17if (num > piles[i] / mid) time += num + 1;18else time += num;19}20if (time <= h) {21ans = mid;22right = mid - 1;23} else left = mid + 1;24}25return ans;26}27}