可以使用哈希表来比较两个数组,其中一个数组包含重复项。以下是一个示例代码:
def compare_arrays_with_duplicates(arr1, arr2):
# 创建一个空的哈希表
hash_table = {}
# 遍历arr1并将每个元素添加到哈希表中
for num in arr1:
if num in hash_table:
hash_table[num] += 1
else:
hash_table[num] = 1
# 遍历arr2并检查每个元素是否在哈希表中
for num in arr2:
if num in hash_table and hash_table[num] > 0:
hash_table[num] -= 1
else:
return False
# 检查哈希表中是否还有剩余的元素
for count in hash_table.values():
if count > 0:
return False
return True
# 示例用法
arr1 = [1, 2, 2, 3, 4, 5]
arr2 = [2, 2, 3, 4, 5, 6]
print(compare_arrays_with_duplicates(arr1, arr2)) # 输出:True
在上述代码中,我们首先创建一个空的哈希表,并遍历第一个数组arr1
,将每个元素作为键并计算其出现次数作为值存储在哈希表中。然后,我们遍历第二个数组arr2
,对于每个元素,我们检查其是否在哈希表中,并且其对应的计数值大于0。如果是,则将哈希表中对应元素的计数值减1,表示已经匹配了一个重复项。最后,我们检查哈希表中是否还有剩余的计数值大于0的元素,如果有,则返回False,否则返回True。
上一篇:比较两个数组,获取行号
下一篇:比较两个数组,其中一些值是可选的