C语言 | Leetcode C语言题解之第454题四数相加II

题目:

题解:

cpp 复制代码
struct hashTable {
    int key;
    int val;
    UT_hash_handle hh;
};

int fourSumCount(int* A, int ASize, int* B, int BSize, int* C, int CSize, int* D, int DSize) {
    struct hashTable* hashtable = NULL;
    for (int i = 0; i < ASize; ++i) {
        for (int j = 0; j < BSize; ++j) {
            int ikey = A[i] + B[j];
            struct hashTable* tmp;
            HASH_FIND_INT(hashtable, &ikey, tmp);
            if (tmp == NULL) {
                struct hashTable* tmp = malloc(sizeof(struct hashTable));
                tmp->key = ikey, tmp->val = 1;
                HASH_ADD_INT(hashtable, key, tmp);
            } else {
                tmp->val++;
            }
        }
    }
    int ans = 0;
    for (int i = 0; i < CSize; ++i) {
        for (int j = 0; j < DSize; ++j) {
            int ikey = -C[i] - D[j];
            struct hashTable* tmp;
            HASH_FIND_INT(hashtable, &ikey, tmp);
            if (tmp != NULL) {
                ans += tmp->val;
            }
        }
    }
    return ans;
}
相关推荐
Tina表姐4 小时前
(C题|NIPT 的时点选择与胎儿的异常判定)2025年高教杯全国大学生数学建模国赛解题思路|完整代码论文集合
c语言·开发语言·数学建模
金古圣人5 小时前
hot100 滑动窗口
数据结构·c++·算法·leetcode·哈希算法
高山有多高6 小时前
详解文件操作
c语言·开发语言·数据库·c++·算法
YuTaoShao6 小时前
【LeetCode 热题 100】49. 字母异位词分组
算法·leetcode·哈希算法
程序员Xu8 小时前
【LeetCode热题100道笔记】腐烂的橘子
笔记·算法·leetcode
阿维的博客日记9 小时前
LeetCode5最长回文子串
leetcode
天选之女wow9 小时前
【代码随想录算法训练营——Day4】链表——24.两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题02.07.链表相交、142.环形链表II
数据结构·算法·leetcode·链表
恒森宇电子有限公司10 小时前
IP5326_BZ 支持C同口输入输出的移动电源芯片 2.4A的充放电电流 支持4LED指示灯
c语言·开发语言·单片机
曙曙学编程10 小时前
stm32——NVIC,EXIT
c语言·c++·stm32·单片机·嵌入式硬件
HUST11 小时前
C语言 第三讲:分支和循环(上)
c语言·开发语言