Python 优化代码,以查找索引对(i,j)的数量,从而使i<=j和(a[i]&x2B;a[j])是二的和幂
尝试使用2 for循环,但出现超时问题。数组也可以有负元素Python 优化代码,以查找索引对(i,j)的数量,从而使i<=j和(a[i]&x2B;a[j])是二的和幂,python,Python,尝试使用2 for循环,但出现超时问题。数组也可以有负元素 def pairSummingToPowerOfTwo(a): if len(a)==1 and (a[0] and (not(a[0] & (a[0] - 1))) ): return 1 count = 0 for i in range(len(a)): for j in range(i, len(a)): sum = a
def pairSummingToPowerOfTwo(a):
if len(a)==1 and (a[0] and (not(a[0] & (a[0] - 1))) ):
return 1
count = 0
for i in range(len(a)):
for j in range(i, len(a)):
sum = a[i] + a[j]
if (sum and (not(sum & (sum - 1)))):
count += 1
return count
请建议优化方法您可以优化嵌套循环,将值直接作为单个循环使用
for x, y in itertools.combinations_with_replacement(a, 2):
sum = x + y
# Rest of code unchanged
它处理
i输入的长度是多少?输入的值范围是多少?