Python来寻找一个列表中元素的最小数目,其和等于给定的值

2024-04-27 04:06:16 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有

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

我的给定值是-

n = 14

我希望输出是一个列表,其中包含元素的最小数量,这些元素的和等于给定的值-

output = [8, 6]

有人能告诉我怎么用Python做吗?我仅限于numpy,无法导入任何其他模块。你知道吗

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


Tags: 模块httpsnumpycom元素列表output数量
1条回答
网友
1楼 · 发布于 2024-04-27 04:06:16

这段代码似乎可以满足您的需要。这可能不是最有效的方法,但没有更多的信息,这是我能做的最好的!你知道吗

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)

其思想是先将列表按升序排序,然后循环遍历。在循环中,我们再次在同一个列表上循环,以找到第一个匹配项。一旦找到匹配项,我们就打破了两个循环。你知道吗

相关问题 更多 >