class Solution {
public int minEatingSpeed(int[] piles, int h) {
int min = 1;
int max = 0;
for (int pile : piles) {
max = Math.max(max, pile);
}
while (min <= max) {
int mid = min + (max - min >> 1);
long time = 0;
for (int pile : piles) {
// 不能整除则向上取整
time += (pile + mid - 1) / mid;
}
if (time > h) {
min = mid + 1;
} else {
max = mid - 1;
}
}
return min;
}
}