我需要创建一个函数,它接受一个整数列表并返回列表中是否存在一个Pythagorean三元组。例如,[3, 5, 7, 4]
返回True
,因为3,4,5是毕达哥拉斯三元组。到目前为止,我有这个(在Python中):毕达哥拉斯三元效率
def containsPythagoreanTriple(a):
for i in xrange(len(a)): #square the numbers
num = a[i]
a[i] = num**2
a = sorted(a)
for start in xrange(len(a)): #compare every pair
for i in xrange(start+1, len(a)):
if a[start] + a[i] in a:
return True
return False
有没有办法让这更有效?