【C语言刷力扣】2206.将数组划分成相等数对

题目:

解题思路:

题目中要求元素成数对出现,即每个元素出现偶数次。用哈希表存放每个数出现的次数,再循环查看每个数的次数是否位偶数。

复制代码
typedef struct {
    int key;
    int count;
    UT_hash_handle hh;
} hashEntry;

bool divideArray(int* nums, int numsSize) {
    hashEntry * cnt = NULL;
    for (int i = 0; i < numsSize; ++i) {
        hashEntry * pEntry = NULL;
        HASH_FIND(hh, cnt, &nums[i], sizeof(int), pEntry);
        if (pEntry == NULL) {
            pEntry = (hashEntry*)malloc(sizeof(hashEntry));
            pEntry -> key = nums[i];
            pEntry -> count = 1;
            HASH_ADD(hh, cnt, key,sizeof(int), pEntry);
        }
        else pEntry -> count++;
    }

    hashEntry *curr = NULL, *next = NULL;
    HASH_ITER(hh, cnt, curr, next)
    {
        if (curr->count % 2 != 0) return false;
    }

    return true;
}
相关推荐
Ulyanov19 小时前
《从质点到位姿:基于Python与PyVista的导弹制导控制全栈仿真》: 同台竞技——3-DOF与6-DOF模型的终极对决与误差分析
开发语言·python·算法·系统仿真·雷达电子对抗仿真
Severus_black19 小时前
【初阶数据结构】链式二叉树(BinaryTreeNode)与递归
c语言·数据结构·链表
Hesionberger19 小时前
LeetCode98:验证二叉搜索树(多解)
java·开发语言·python·算法·leetcode·职场和发展
千寻girling19 小时前
周日那天参加的力扣周赛... —— 10号
java·javascript·c++·python·算法·leetcode·职场和发展
guygg8819 小时前
基于 DWT 的盲数字水印实现(嵌入与提取)
算法
故事还在继续吗19 小时前
嵌入式 C 语言程序性能优化
c语言·开发语言·性能优化
鱼子星_19 小时前
最短路问题【图论】
数据结构·算法·贪心算法·动态规划·图论
研究点啥好呢19 小时前
dji机器人SLAM算法工程师 面试题精选:10道高频考题+答案解析
c++·算法·机器人·slam·dji
君万19 小时前
【LeetCode每日一题】3. 无重复字符的最长子串 560. 和为 K 的子数组
算法·leetcode·golang·go
Lucky_ldy19 小时前
C语言学习:字符函数和字符串函数(内容丰富且易懂)
c语言·开发语言·学习