【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;
}
相关推荐
pride.li6 小时前
第12章 Python 教程-流程控制:循环结构
linux·服务器·python·算法
Lxx_Zw6 小时前
先把轮子转稳,才不会烧心:编码器速度环 PID 怎么接回 PWM
c语言·stm32·单片机·嵌入式硬件
头像很酷6 小时前
嵌入式虚拟化-xvisor-物理内存大管家
c语言·hypervisor·xvisor·嵌入式虚拟化
海绵宝宝转agent6 小时前
2026-10-16 4算法+1面经
算法
小poop7 小时前
基础排序算法详解——插入、选择与交换排序
算法·排序算法
青蓝智慧马老师7 小时前
想学数据分析但零基础,正确顺序不是先学 Python
大数据·人工智能·算法
嵌入式学习菌7 小时前
Modbus 透传和 Modbus 转发区别
c语言
jeo陽7 小时前
05-数组与冒泡排序:第一个数据结构与经典算法
c语言·数据结构·算法
水饺编程7 小时前
第2章:Linux 基础,mkdir 命令的简单入门
linux·c语言·汇编
鸽鸽程序猿7 小时前
【刷题册】hot21-25
算法