a = [70,30,33,23,4,34,95]b = [50,10,7]
我试过这个,但我知道这不够准确
if sum(a) > sum(b): a.sort() b.sort() temp = [int(i) for i in a] i=0 while(sum(b) <= sum(temp) and (i <= len(a) - 1)): b.append(a[i]) temp.remove(a[i]) i = i+1 a = [int(i) for i in temp]if sum(b) > sum(a): a.sort() b.sort() temp = [int(i) for i in b] i=0 while(sum(a) <= sum(temp) and (i <= len(b) - 1)): a.append(b[i]) temp.remove(b[i]) i = i+1 b = [int(i) for i in temp]
结果是:
sums = 186,184
列表= [7,70,95,4],[4,50]
必填答案:
总和= 185,185
列表= [7,50,95],70]
解决方法 有些数字需要从a移动到b,有些数字需要从b移动到a.移动的数字集是两个列表中所有数字集的子集.在您的示例中,只有12个数字,这意味着2 ** 12 == 4096个子集.由于数量很少,蛮力方法应该会成功. 总结以上是内存溢出为你收集整理的平衡两个列表,直到它们的总和相等,并在Python中的两个列表中进行最小交换全部内容,希望文章能够帮你解决平衡两个列表,直到它们的总和相等,并在Python中的两个列表中进行最小交换所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)