Python-在列表中查找总和等于给定值的最小元素数

时间:2019-12-08 13:11:43

标签: python python-3.x list

假设我有

list = [9, 4, 1, 8, 6]

我给定的值是-

n = 14

我希望输出是一个列表,其中元素的总和等于给定值的元素的数量最少,这将是-

output = [8, 6]

谁能告诉我如何在Python中做到这一点?我仅限于 numpy ,并且无法导入任何其他模块。

我在javascript中找到了一个实现,但在python-https://stackoverflow.com/a/55771349/12499855

中却无法实现

1 个答案:

答案 0 :(得分:1)

此代码似乎可以满足您的需求。这可能不是最有效的方法,但是如果没有更多信息,这就是我能做到的最好的方法!

list1 = [9, 4, 1, 8, 6]
list1.sort()
n = 14
output = list()
for num in list1:
    for test in list1:
        if num + test == n:
            output = [num, test]
            break
    if output:
        break

print(output)

这个想法是先按升序对列表进行排序,然后遍历它。在循环内部,我们再次循环遍历同一列表以查找匹配的第一个匹配项。找到匹配项后,我们将退出两个循环。