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;
}
相关推荐
Mephisto.java14 分钟前
【力扣 | SQL题 | 每日四题】力扣613, 579, 578, 580, 585
算法·leetcode
zhouzhurong42 分钟前
C语言scanf用%d读入字符型变量,通过输入字符的ASCII码输入字符
c语言·开发语言·算法
疑惑的杰瑞2 小时前
[数据结构]带头双向循环链表的实现与应用
c语言·数据结构·算法·链表
xiao_fwuu3 小时前
LeetCode 120. 三角形最小路径和
算法·leetcode·职场和发展
黎明smaly3 小时前
【数据结构与算法初阶】前言介绍
c语言·开发语言·数据结构·算法
single5944 小时前
【优选算法】(第十八篇)
java·数据结构·c++·vscode·算法·leetcode
LaoWaiHang4 小时前
C语言从头学67——学习头文件stddef.h和stdbool.h
c语言
A_bing_a_15 小时前
RTC定时时钟
c语言·stm32·单片机·嵌入式硬件
JZihui5 小时前
力扣 二叉树 104. 二叉树的最大深度
算法·leetcode·职场和发展