关注
第一题背包求解 暴力只过了0.3
public long Solve(int n, int m, int[] weights) {
long min = 0;
long max = 0;
for(int i=0;i<n;i++){
min+=weights[i];
if(weights[i]>max)
max = weights[i];
}
if(min%m!=0)
min=(long)(min/m)+1;
else min = min/m;
min=Math.max(min, max);
while(beibao(min,n,m,weights)==false) {
System.out.println(min);
min++;
}
return min;
}
public boolean beibao(long min,int n,int m,int[] weights) {
int t = m-1;
//t是指还剩几个背包
long k = 0;
//k指当前背包装了多少东西
for(int i=0;i<n;++i) {
if(k+weights[i]<=min && t>=0) {
k+=weights[i];
continue;
}else if(t>0) {
//当前背包装不下第i个,换个新背包装第i个,且最少有一个新背包
--t;
k=weights[i];
}
else{
//所有背包都用完,t=0
//还没有跳出循环,即还有石头没装下
return false;
}
}
return true;
}
查看原帖
1 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
11120次浏览 150人参与
# 最难的技术面是哪家公司? #
66058次浏览 978人参与
# 牛客AI体验站 #
17293次浏览 297人参与
# 找不到实习会影响秋招吗 #
1446779次浏览 13729人参与
# 这份实习,有没有动摇过你的职业方向? #
1180次浏览 16人参与
# 通信/硬件公司求职体验 #
198237次浏览 1055人参与
# 有必要和同事成为好朋友吗? #
1916次浏览 35人参与
# 牛客2025仙途报告 #
81604次浏览 607人参与
# 第一次面试 #
1072909次浏览 13739人参与
# 你喜欢工作还是上学 #
89971次浏览 888人参与
# 职场上哪些行为很加分? #
327827次浏览 3631人参与
# 实习教会我的事 #
59301次浏览 439人参与
# 被AI治愈的瞬间 #
91205次浏览 690人参与
# 国企vs私企,你更想去? #
320261次浏览 2532人参与
# 你觉得什么岗位会被AI替代 #
41833次浏览 283人参与
# 如果可以选,你最想从事什么工作 #
723897次浏览 4871人参与
# 你找工作的时候用AI吗? #
173904次浏览 893人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
329243次浏览 2129人参与
# 你怎么看待AI面试 #
146688次浏览 787人参与
# 产品薪资爆料 #
159054次浏览 855人参与
查看16道真题和解析