2206. 将数组划分成相等数对 - 力扣(LeetCode)
统计出现次数,如果一个数出现次数是奇数次,那么肯定不是成对出现,如果是偶数次,那么肯定是成对出现.
数组哈希
class Solution {
public:
bool divideArray(vector<int>& nums) {
int hash[501];//nums最大长度对500,这里防止越界
memset(hash,0,sizeof(hash));//hash内容全部初始化为0
for(int i=0;i<nums.size();i++)
{
++hash[nums[i]];//计数自增
}
for(int i=0;i<500;i++)
{
if(hash[i]&1)return false;//出现奇数次,说明肯定不是成对出现
}
return true;//所有的数都出现偶数次,那就全部是成对出现
}
};