我需要創建一個函數,它接受一個整數列表並返回列表中是否存在一個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
有沒有辦法讓這更有效?