2206. 将数组划分成相等数对
-
给你一个整数数组 nums,它包含 2 * n 个整数。
-
你需要将 nums 划分成 n 个数对,满足:
- 每个元素 只属于一个数对。
- 同一数对中的元素相等 。
- 如果可以将 nums 划分成 n 个数对,请你返回 true ,否则返回 false 。
-
思路: 使用哈希表统计每个数字出现的次数
# from collections import Counter
class Solution(object):
def divideArray(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
# 统计每个数字的频率
freq = Counter(nums)
# 检查每个频率是否是偶数
for count in freq.values():
if count % 2 != 0:
return False
return True
- 时间复杂度: O(n)
- 空间复杂度: O(m), m是不同元素的个数