题目描述:
输入十个数字,五个为一组,分两组,每组里的数字相加,问两组的差最少为多少。
例如:
输入10个数字,任意5个求和为a,剩下5个求和为b,问a和b的差的最小是多少。
解释
例如1 2 3 4 5 6 7 8 9 10这十个数,1 2 5 9 10为一组和为27,
3 4 6 7 8为另一组和为28,它们的差为1,是最小值。
暴力解法:利用迭代器itertools.combinations实现
def listSplit():
import itertools
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
res = []
n = sum(nums)
# print(n)
nlist = list(itertools.combinations(nums,5))
# print(nlist)
for i in nlist:
res.append(abs(sum(i)-(n-sum(i))))
# print(res)
print(min(res))
一点点努力,总有一天会超越(诗人李健的超越送给大家,O(∩_∩)O哈哈~)