我有以下一段代码,查找列表中的任何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