📅  最后修改于: 2023-12-03 14:49:27.476000             🧑  作者: Mango
给定一个整数数组和一个目标整数K,任务是计算数组中位或等于K的不同对的数量。
pairs
,用于存储找到的符合条件的对。num
:num
,遍历集合 pairs
中的每个对 (x, y)
:(x | num) == K
或者 (y | num) == K
,则将该对 (x, y)
加入到集合 pairs
中。{ num, K - num }
这对作为一个新的对 (x, y)
,加入到集合 pairs
中。pairs
中的不同对的数量。def count_pairs(arr, K):
pairs = set()
for num in arr:
for x, y in pairs.copy():
if (x | num) == K or (y | num) == K:
pairs.add((x, y))
pairs.add((num, K - num))
return len(pairs)
# 示例用法
arr = [1, 2, 3, 4, 5]
K = 7
result = count_pairs(arr, K)
print(result) # 输出: 3
注意:上述代码中的解决方法并非最优解,而是一种简单的暴力解法,实际应用中可能存在更优的解决方案。