在 Python 中计算元素总和为 2 的幂的索引对的程序
假设我们有一个名为nums的数字列表。我们必须找到索引对i,j的数量,其中i<j使得nums[i]+nums[j]对于某些0>=k等于2^k。
因此,如果输入类似于nums=[1,2,6,3,5],那么输出将是3,因为有三对sum,如(6,2):sumis8,(5,3):sum是8并且(1,3)sum是4
示例
让我们看下面的实现来更好地理解
from collections import Counter
def solve(nums):
res, c = 0, Counter()
for x in nums:
for j in range(32):
res += c[(1 << j) - x]
c[x] += 1
return res
nums = [1, 2, 6, 3, 5]
print(solve(nums))输入
[1, 2, 6, 3, 5]输出结果
3
热门推荐
10 毛笔哥哥结婚祝福语简短
11 向国庆送祝福语简短
12 建队节祝福语简短
13 朋友喜得外孙简短祝福语
14 小店营业的祝福语简短
15 餐饮生日祝福语简短独特
16 鲜花英语祝福语卡片简短
17 男朋友暴富祝福语简短
18 婶婶拜年祝福语大全简短