【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;
}
相关推荐
维克兜率天9 分钟前
4.1.3 策略类型全景图:六大策略,你适合哪个
笔记·python·算法·量化
01_ice14 分钟前
c++类和对象(中)
c++·算法
纪念 22917 分钟前
数据结构排序(一)
数据结构·算法·排序算法
薛定e的猫咪19 分钟前
(NeurIPS 2021)MatNet:面向矩阵型关系数据的神经组合优化编码器
人工智能·深度学习·线性代数·算法·矩阵
高亦真34 分钟前
今天是学习嵌入式的第32天
linux·学习·算法
鹿角片ljp9 小时前
LeetCode 236. 二叉树的最近公共祖先|递归后序
算法
luj_17689 小时前
大律师考核应重能力与科技素养
c语言·开发语言·c++·经验分享·算法
无定义_9 小时前
Floyd——Warshall
算法
刃神太酷啦9 小时前
Linux 系统 MySQL 完整安装配置教程:从卸载 MariaDB 到优化 my.cnf----《Hello MySQL!》(1)
android·linux·c语言·c++·mysql·leetcode·mariadb
带多刺的玫瑰10 小时前
Leecode#9刷题之回文数
数据结构·算法