数据结构算法哈希表篇之四数相加 II

四数相加 II

  1. LeetCode题目链接
  2. 卡尔老师代码随想录讲解
  3. 关键点: 这道题目跟两数相加很像,所以我们还是选择Map数据结构,只不过我们需要先处理两个数组之和,和的值做 key,出现的次数做 value , 然后在处理另外两个数组,再从已经存储好的Map中寻找符合要求的值,这样我们得到的 value 则为已经处理好的两个数组符合要求的二元组的数量。
  4. 代码:
var fourSumCount = function(nums1, nums2, nums3, nums4) {
    let abMap = new Map()
    let count = 0
    for(let i = 0; i< nums1.length ;i++){
        for(let j =0;j < nums2.length;j++) {
            let absum = nums1[i]+nums2[j] 
            if(!abMap.has(absum)){
                abMap.set(absum,1)
            } else {
                value = abMap.get(absum)+1
                abMap.set(absum,value)
            }
        }
    }
    for(let i = 0;i < nums3.length;i++){
        for(let j =0 ;j < nums4.length;j++){
            let cdsum = nums3[i]+nums4[j]
            let sub = 0-cdsum
            if(abMap.has(sub)){
                count += abMap.get(sub)
            }
        }
    }
    return count
};
  1. 注意:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值