import java.util.Arrays;
/**
* @author xnl
* @Description:
* @date: 2022/6/13 21:21
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
int n = 6;
// int[] quantities = {11,6};
int[] quantities = {15,10,10};
System.out.println(solution.minimizedMaximum(7 ,quantities));
}
public int minimizedMaximum(int n, int[] quantities) {
int right = Arrays.stream(quantities).max().getAsInt();
int left = 1, k = right;
while (left < right){
int mid = (left + right) >> 1;
int num = getNum(quantities, mid);
if (num <= n){
k = mid;
right = mid;
} else {
left = mid + 1;
}
}
return k;
}
private int getNum(int[] quantities, int size){
int ans = 0;
for (int quantity : quantities) {
ans += (quantity + size - 1) / size ;
}
return ans;
}
}
力扣:2064. 分配给商店的最多商品的最小值
最新推荐文章于 2024-09-30 14:51:11 发布