Skip to main content

2206.将数组划分成相等数对

思路

由题意可得,2n2n 个数划分成 nn 个数对,也就说一个数对一定有两个数,也就是从一个数组中找到两个相同且属于同一个数对。也就是当这个数组中所有元素出现的次数都为偶数次的时候可以划分成 nn 个数对。故使用哈希表。

代码

class Solution {
public:
bool divideArray(vector<int>& nums) {
if (nums.size() & 1) return false;
int m[505];
memset(m, 0, sizeof(m));

for (int i = 0 ;i < nums.size(); i++) {
m[nums[i]] ++;
}

for (int i = 0; i < nums.size(); i++) {
if (m[nums[i]] & 1) return false;
}
return true;
}
};