Maximum Running Time of N Computers LeetCode solution in Java
1class Solution {23private boolean canFit(int n, long k, int[] batteries) {4long currBatSum = 0;5long target = n * k;67for (int bat : batteries) {8if (bat < k) {9currBatSum += bat;10} else {11currBatSum += k;12}1314if (currBatSum >= target) {15return true;16}17}1819return currBatSum >= target;20}2122public long maxRunTime(int n, int[] batteries) {23long batSum = 0;24for (int bat : batteries) {25batSum += bat;26}2728long lower = 0;29long upper = batSum / n;30long res = -1;3132// binary search33while (lower <= upper) {34long mid = lower + (upper - lower) / 2;3536if (canFit(n, mid, batteries)) {37res = mid;38lower = mid + 1;39} else {40upper = mid - 1;41}42}4344return res;45}46}