均匀地将int值分配到两个列表中,其总和必须几乎相等

时间:2012-12-08 21:28:48

标签: python algorithm python-2.7

我希望将列表的int值均匀分配到两个列表中,这些列表的总和必须几乎相等。如果它们不完全相同,则应返回差异。

li=[5,8,13,27,14]
first_list=[27,8)
second_list=[14,13,5]
return sum(first_list)-sum(second_list) #3

1 个答案:

答案 0 :(得分:3)

这是Partition Problem的优化问题,即NP-Complete

没有已知的多项式解,但有一些启发式和近似算法。

此外,对于相对较小的整数,有一个可行的动态编程解决方案,或者如果输入(元素数量)相对较小 - 可以使用指数brute force解决方案。

相关问题