📅  最后修改于: 2023-12-03 15:10:41.682000             🧑  作者: Mango
给定两个长度为 n 的正整数数组 nums1 和 nums2,返回两个数组中所有数对的异或和。
首先,我们需要计算出两个数组所有可能的数对,然后依次计算每个数对的异或和。
对于计算异或和的问题,我们可以通过位运算来解决。异或运算符 ^ 的作用是当两个数字的二进制位不同时返回 1,否则返回 0。
时间复杂度为 O(n^2),需要使用两重循环遍历所有数对。
def xor_pairs(nums1, nums2):
xor_sum = 0
for i in range(len(nums1)):
for j in range(len(nums2)):
xor_sum ^= nums1[i] ^ nums2[j]
return xor_sum
assert xor_pairs([1,2,3], [4,5,6]) == 28
assert xor_pairs([1,2], [2,3]) == 2