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. 分配给商店的最多商品的最小值
Java程序:寻找最小化最大值
最新推荐文章于 2025-11-23 18:01:04 发布
该博客展示了一个Java程序,主要解决的问题是在给定数量的物品中,找到一个大小,使得每件物品被分割成不超过这个大小的部分,使得分割后所有部分总数最小但至少为n。程序通过二分查找实现,计算了分割每个物品所需的最大部分数量,并逐步缩小搜索范围。
4万+

被折叠的 条评论
为什么被折叠?



