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;
}
相关推荐
奈葵3 分钟前
C语言字符函数和字符串函数
c语言·开发语言
OKkankan10 分钟前
单链表算法题(数据结构)
c语言·数据结构·数据库·c++·算法
ZZZ_O^O20 分钟前
动态规划-背包问题——[模版]完全背包问题
c++·学习·算法·leetcode·动态规划
芒 种37 分钟前
深入理解指针
c语言
羊小猪~~1 小时前
C/C++语言基础--initializer_list表达式、tuple元组、pair对组简介
c语言·开发语言·c++·vscode·list·c++20·visual studio
t5y221 小时前
【C语言】Union
c语言·开发语言·算法
ZZZ_O^O2 小时前
动态规划-背包问题——1049.最后一块石头的重量II
c++·学习·算法·leetcode·动态规划
TeYiToKu3 小时前
笔记整理—linux驱动开发部分(12)I2C总线与触摸屏设备
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件
昇腾CANN4 小时前
Ascend C算子性能优化实用技巧05——API使用优化
c语言·开发语言·性能优化
沐泽Mu4 小时前
嵌入式学习-C嘎嘎-Day03
c语言·开发语言·c++·学习