【发布时间】:2020-06-06 03:09:44
【问题描述】:
a = [1,2,3,4,5,6,7]
b = [56,59,62,65,67,69]
def sumOfTwo(a,b,v):
for i in range (len(a)):
val_needed = v - a[i]
for j in range (len(b)):
if b[j] == val_needed:
x = b[j]
y = a[i]
print(x,y)
sumOfTwo(a,b,v=70)
输出:5 65
如果问题中的给定列表可能有更多对,我该怎么做? 帮助。 还有哪些方法可以实现这一目标?
【问题讨论】:
-
这里打印出匹配的 last 对。如果要打印 所有 匹配的对,则需要在
for循环中使用print()。 -
感谢 Code.Apprentice。你很快。需要O(n^2),能不能降低时间复杂度?
-
这与您最初提出的问题不同。我的第一个倾向可能不是。如果您知道两个输入列表都已排序,则可以减少常数因子。这将允许您在两个元素的总和大于目标时立即中断。
标签: python arrays list sum sum-of-digits