关注
第一题背包求解 暴力只过了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 评论
相关推荐
到手了的卷王:这薪资架构也太激进了
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 上班以后,你还有哪些坚持的爱好? #
3542次浏览 100人参与
# 拼多多工作体验 #
42787次浏览 277人参与
# 你最近因为什么迷茫? #
21232次浏览 296人参与
# 你有哪些缓解焦虑的方法? #
47516次浏览 892人参与
# 你都在哪些场所面过试? #
9043次浏览 138人参与
# 记录实习开销 #
176712次浏览 677人参与
# 当你面对裁员会如何? #
355953次浏览 2878人参与
# 你认为小厂实习有用吗? #
114925次浏览 677人参与
# 实习离职怎么跟领导说 #
74813次浏览 412人参与
# 工作一周年分享 #
49253次浏览 244人参与
# AI coding的好用工具分享 #
8940次浏览 196人参与
# 工作压力大怎么缓解 #
133546次浏览 1163人参与
# 实习怎么做才有更好的产出 #
5622次浏览 129人参与
# 一起聊字节 #
241366次浏览 1018人参与
# 实习生工资多少才算正常? #
6977次浏览 128人参与
# 找工作以来,你最看不惯__ #
5421次浏览 137人参与
# 你给AI提过哪些离谱的需求? #
3124次浏览 108人参与
# 26届秋招投递记录 #
112230次浏览 661人参与
# 领导做过最不靠谱的事 #
7142次浏览 132人参与
# 上班到公司第一件事做什么? #
134471次浏览 938人参与

