代码
class Solution { public int minEatingSpeed(int[] piles, int h) { //二分 int left = 1, right = (int) Math.pow(10,9) ; int speed = Integer.MAX_VALUE; while(left <= right ) { int mid = left + ( (right - left) >> 1 ); int hour = getHour(piles, mid); if(hour <= h ) { speed = Math.min(speed, mid); right = mid - 1; } else { left = mid + 1; } } return speed; } private int getHour(int[] piles, int speed ) { int hour = 0; for(int pile : piles ) { if(pile % speed == 0 ) { hour += pile / speed; } else { hour += pile / speed + 1; } } return hour; }}