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;
}
相关推荐
记得早睡~9 分钟前
leetcode150-逆波兰表达式求值
javascript·算法·leetcode
qy发大财11 分钟前
跳跃游戏(力扣55)
算法·leetcode
鱼嘻2 小时前
Linux自学day23-进程和线程
linux·服务器·c语言·进程和线程
BUG 劝退师3 小时前
C语言预处理学习笔记
c语言·笔记·学习
小立爱学习3 小时前
Linux 内核自旋锁spinlock(四)--- queued spinlock
linux·c语言
郑州吴彦祖7724 小时前
数据结构——二叉树经典习题讲解
java·数据结构·算法·leetcode
qy发大财4 小时前
跳跃游戏II(力扣45)
算法·leetcode
Joyner20184 小时前
python-leetcode-相交链表
算法·leetcode·链表
和光同尘@5 小时前
74. 搜索二维矩阵(LeetCode 热题 100)
数据结构·c++·线性代数·算法·leetcode·职场和发展·矩阵
柠石榴6 小时前
【练习】【二分】力扣热题100 34. 在排序数组中查找元素的第一个和最后一个位置
c++·算法·leetcode·二分