【发布时间】:2014-03-05 02:55:13
【问题描述】:
假设我的列表是l = [1,2,3,4,5] 和x = 8。
我想我应该使用 (for i in l:) 遍历列表,并使用递归检查列表中的 2 个数字加起来是否等于 x-i。但这似乎不是解决问题的最有效方法。
有人可以向我展示一个更好的 Python 方法吗?谢谢
【问题讨论】:
-
谷歌解决子集总和问题
-
在恰好 3 和一个数字相加的特定情况下,我们可以比一般的子集求和算法做得更好。以前有人问过这个问题;我们应该能够找到重复的问题。
-
其实他应该能找到的。你为什么要帮助懒惰的人?
-
因为 StackOverflow 比它应该的更难搜索。我已经重新回答了很多问题,仅仅是因为它比查找重复项要快得多,即使我知道有重复项。
-
我找到了 stackoverflow.com/questions/1861516/… ,但它也没有真正提供任何代码。已接受答案链接到维基百科上的 3SUM (en.wikipedia.org/wiki/3SUM)。
标签: python