四数相加2(哈希表)

301 阅读1分钟

题目:

image.png 分析:
找到四个数之和为0并返回这样四个数的次数,可以采用哈希表解决,难点是如何设置哈希表的键值对。而且注意到这是四个独立的数组,不需要考虑重复的元素。
思路:
定义一个哈希Map<Integer,Integer>,注意到是四个数,分别存储俩数之和的值及出现的次数。先遍历nums1,nums2,统计俩个数组的元素之和以及出现的次数,放入map中。再对nums3和nums4遍历,计算0-(nums1[i]+nums2[j])的值,然后到map中寻找这个值以及出现的次数,用count统计次数,最后返回count即可。

关键部分说明: 对两数之和次数的更新:存在于map中,先获取次数再+1,不存在:直接赋值为1 特别说明: 遍历俩个数组时,采用传统for循环显得过于臃肿,故采用增强for循环使代码更为美观

完整代码

image.png