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;
}
相关推荐
Nuanyt4 小时前
LeetCode Hot 100 链表专题(五)· 2 题(Java)
java·算法·leetcode·链表
§ꦿCFོ༉7 小时前
嵌入式八股—C语言入门学习(一)
c语言·编程语言·嵌入式八股文
圣保罗的大教堂7 小时前
leetcode 3736. 最小操作次数使数组元素相等 III 简单
leetcode
文丑颜不良啊8 小时前
LeetCode1881~1990题目解析
java·leetcode
沐晓时光8 小时前
C语言入门,字符串和字符串函数知识讲解
c语言·开发语言
文丑颜不良啊11 小时前
LeetCode1861~1880题目解析
java·leetcode
文丑颜不良啊11 小时前
LeetCode1921~1940题目解析
java·leetcode
一去不复返的通信er14 小时前
排序 + 双指针:力扣15三数之和
算法·leetcode
文丑颜不良啊14 小时前
LeetCode1901~1920题目解析
java·leetcode
Pniubi14 小时前
力扣3无重复字符的最长字串(滑动窗口)
算法·leetcode·职场和发展