关注
背包容量第一题二分做出来了
public long Solve(int n, int m, int[] weights) {
// write code here
int max = -1;
long sum = 0;
for (int i = 0; i < weights.length; i++) {
if(weights[i]>max){
max = weights[i];
}
sum += weights[i];
}
long start = Math.max(max,sum/m);
long end = sum;
long mid = (start+end)/2;
while(start<end){
mid = (start+end)/2;
if(canHave(m,n,weights,mid)){
end = mid;
}else{
start = mid + 1;mid = mid + 1;
}}
return mid;
}
private boolean canHave(int m,int n,int[] weights,long k){
int leftNum = m-1;long leftWeight = k;
for (int j = 0; j < weights.length; j++) {
if(leftWeight>= weights[j]){
leftWeight -= weights[j];
}else{
leftNum--;leftWeight = k;leftWeight -= weights[j];
}
}
if(leftNum>=0){return true;}
return false;
}
查看原帖
2 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
5057次浏览 90人参与
# 秋招吐槽大会 #
303888次浏览 1522人参与
# 牛客AI体验站 #
15966次浏览 279人参与
# 找工作八股要背到什么程度? #
58563次浏览 735人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
145093次浏览 879人参与
# 签约/解约注意事项 #
871399次浏览 4695人参与
# 正在实习的你,几点下班 #
293084次浏览 1931人参与
# 工作中的卑微时刻 #
33306次浏览 199人参与
# 秋招踩过的“雷”,希望你别再踩 #
185960次浏览 1686人参与
# 通信和硬件还有转码的必要吗 #
90153次浏览 593人参与
# 我们是不是被“优绩主义”绑架了? #
32344次浏览 484人参与
# 你的秋招第一场笔试是哪家 #
290353次浏览 2079人参与
# 如何提高实习转正率? #
86205次浏览 504人参与
# 校招求职有谈薪空间吗 #
207437次浏览 2364人参与
# 牛友的春节生活 #
14329次浏览 236人参与
# 24秋招求职节奏总结 #
901863次浏览 12388人参与
# 材料专业哪个方向更好找工作? #
37762次浏览 118人参与
# 备战春招/暑实,现在应该做什么? #
9257次浏览 212人参与
# 多益网络工作体验 #
63016次浏览 306人参与
# 国企vs私企,你更想去? #
319030次浏览 2525人参与
查看28道真题和解析