454哈希表-四数相加

Posted 孤注一掷 、

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了454哈希表-四数相加相关的知识,希望对你有一定的参考价值。

题目

 链接:454. 四数相加 II - 力扣(LeetCode)

思路

  1. 定义一个map,key存放两数之和,value存放两数之和出现的次数
  2. 遍历前两个数组,统计两数之和,两数之和出现的次数,放到map中
  3. 定义res 存放四数之和为0出现的次数
  4. 遍历后两个数组,如果找到0-(前两数组之和)在map中出现过的话,就用res加上value对应的值来统计对应次数

代码

class Solution 
    public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4)
        Map<Integer,Integer> map = new HashMap<>();
        int temp;
        int res = 0;
        //统计两个数组中的元素之和,同时统计出现的次数,放入map中
        for(int i : nums1)
            for(int j : nums2)
                temp = i + j;
                if(map.containsKey(temp))
                    map.put(temp,map.get(temp) + 1);
                 else 
                    map.put(temp,1);
                
            
        
        //统计剩余的两个元素的和,在map中找是否存在相加为0的情况,同时记录次数
        for(int i : nums3)
            for(int j : nums4)
                temp = i + j;
                if(map.containsKey(0 - temp))
                    res += map.get(0 - temp);
                
            
        
        return res;
    

以上是关于454哈希表-四数相加的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 454. 四数相加 II java

代码随想录算法训练营第7天 | ● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和 ● 总结

LeetCode与《代码随想录》哈希表篇:做题笔记与总结-JavaScript版

题目地址(4sum-ii/“>454. 四数相加 II)

LeetCode思维向题笔记总结(持续更新)

454. 四数相加 II