python - 将 int 值平均分配到两个列表中,这两个列表的总和必须几乎相等

标签 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

最佳答案

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

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

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

关于python - 将 int 值平均分配到两个列表中,这两个列表的总和必须几乎相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13782121/

相关文章:

python - Python 字典列表的 C++ 等价物?

python - 如何检查字符串是否严格包含字母和数字

python - Groupby 返回最大值的整行发生

python - 如何在 Django 中返回带有 token 的用户 ID?

python - Pandas 向 MySQL 中插入数据

python - 此 sqlite3 查询的正确格式是什么? (Python)

使用点或逗号作为分隔符的带有或不带有小数的数字的 Python 正则表达式?

python - 2个字符串之间的删除距离

algorithm - 这是什么类型的问题?帮忙分类

algorithm - 按字符串相似性对搜索结果进行分组的最有效方法