📅  最后修改于: 2023-12-03 15:10:44.999000             🧑  作者: Mango
给定一个整数数组,编写一个函数来返回符合下列条件的不同对的数目:
题目要求找到数组中符合条件的不同对数目,即 nums[i] XOR nums[j] == 0,等价于 nums[i] == nums[j]。可以通过遍历一遍数组,用哈希表记录每个数出现的次数,再遍历哈希表,对于出现次数大于 1 的数,计算其组合数量即可。
代码如下:
def find_pairs(nums):
if not nums:
return 0
count = 0
hash_map = {}
for num in nums:
hash_map[num] = hash_map.get(num, 0) + 1
for k, v in hash_map.items():
if v > 1:
count += v * (v - 1) // 2
return count
本题要求找到数组中满足条件的不同对数目,可以通过哈希表存储每个数的出现次数,再遍历哈希表计算出现次数大于 1 的数的组合数量即可。时间复杂度和空间复杂度均为 O(n)。