数据结构与算法每日一题——哈希表(454. 四数相加 II)

46 阅读1分钟

454. 四数相加 II

/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @param {number[]} nums3
 * @param {number[]} nums4
 * @return {number}
 */
var fourSumCount = function (nums1, nums2, nums3, nums4) {
    let abMap = new Map()
    for(let i of nums1){
        for(let j of nums2){
            if(abMap.has(i+j)){
                abMap.set(i+j,abMap.get(i+j)+1)
            }else{
                abMap.set(i+j,1)
            }
        }
    }
    let res = 0;
    for(let k of nums3){
        for(let l of nums4){
            // 若A[i] + B[j] === -(C[k] + D[l])
            if(abMap.has(-k-l)){
                res+=abMap.get(-k-l)
            }
        }
    }
    return res
};