【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
有一组不规则的数字4000 7000 2500 3500 3500 2000 1000 4500 3500 6000 8000 1000
从它们当中随便选一些数字 能拼满10000 就将被使用的数字从数组中剔除,一直到拼不满10000为止
有什么好的算法没,求指点
【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
有一组不规则的数字4000 7000 2500 3500 3500 2000 1000 4500 3500 6000 8000 1000
从它们当中随便选一些数字 能拼满10000 就将被使用的数字从数组中剔除,一直到拼不满10000为止
有什么好的算法没,求指点
用java实现了
这个最简单的就是用递归,
取第一个数,然后
for(剩下得数)
{
第一个数+剩下的数[i]
if(>10000){
不能和第二个数相加,就去找第三个数
}else{
接着取第三个数相加
}}
基本思路就是这样,算法自己实现~
是要, 找出最多的对数, 还是每次随机抽取
如果给出的数值如题主范例的那样规整,完全是1000<=x<=9500的500整数倍,问题其实可以简化为:
穷举2~19范围内和为20的组合