二分查找

    科技2022-09-01  109

    875

    class Solution { public int minEatingSpeed(int[] piles, int H) { int l = 1, r = Arrays.stream(piles).max().getAsInt(); while (l < r) { int mid = l + (r - l) / 2; if (eatingTime(piles, mid) <= H) r = mid; else l = mid + 1; } return l; } private int eatingTime(int[] piles, int k) { int res = 0; for (int pile : piles) { res = res + pile / k + (pile % k > 0 ? 1 : 0); } return res; } }

     

    Processed: 0.009, SQL: 9