【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;
}
相关推荐
智算菩萨5 分钟前
迷宫生成算法:从生成树到均匀随机,再到工程化 Python 实现
python·算法·游戏
醒过来摸鱼8 分钟前
《线性空间》专栏写作计划(目录)
算法
C雨后彩虹8 分钟前
幼儿园分班
java·数据结构·算法·华为·面试
Yupureki12 分钟前
《算法竞赛从入门到国奖》算法基础:入门篇-二分算法
c语言·开发语言·数据结构·c++·算法·visual studio
qq_4634084219 分钟前
React Native跨平台技术在开源鸿蒙中使用WebView来加载鸿蒙应用的网页版或通过一个WebView桥接本地代码与鸿蒙应用
javascript·算法·react native·react.js·开源·list·harmonyos
Jul1en_20 分钟前
【算法】位运算
算法
苏州知芯传感24 分钟前
柔性抓取的“慧眼”:MEMS 3D视觉如何让机器人精准识别无序堆叠的复杂钣金件?
算法·3d·机器人·mems
iAkuya32 分钟前
(leetcode)力扣100 22相交链表(双指针)
算法·leetcode·链表
liujing1023292932 分钟前
stm32 开发的 c_cpp_properties.json 配置
c语言·stm32·嵌入式硬件
chao18984442 分钟前
基于MATLAB的ADI方法求解偏微分方程详解
开发语言·算法·matlab