优化以更少的时间在python列表中找到组合

时间:2019-03-01 20:18:03

标签: python python-3.x online-compilation

我有以下一段代码,查找列表中的任何4个组合是否总计为一个值(例如7),如果可能,则打印1否则为0。 它包含以下内容:-列表元素(n)的数量,列表(test)以及需要检查的数量(例如7)(此处为x)。

每次在任何在线平台上执行它时,都会显示“ 时间限制”。 我如何在0.87s以下优化它??提供了这里的“ itertools ”。我在哪里做错了。

import itertools
t=int(input())
while t!=0:
    n=int(input())
    test=[int(val) for val in input().strip().split()]
    x=int(input())
    generator=(itertools.combinations(test,4))
    for elem in generator:
        val=elem
        if sum(val)==x:
            flag=1
            break
            break
    if not flag:
        print('0')
    else:
        print('1')
    t=t-1

0 个答案:

没有答案