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

78 阅读1分钟

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;//所有的数都出现偶数次,那就全部是成对出现
    }
};