LeetCode/454. 四数相加 II
454. 四数相加 II
给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。
为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过 231 - 1 。
示例 :
1 | 输入: |
来源:力扣(LeetCode)
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解:
本题虽然和18. 四数之和名字相近,但思路却不一样,这里参考官方解法,是一种比较好理解的方式,我们通过HashMap,将A和B中元素排列组合相加的元素值存入HashMap中,Key为(a+b),Value为(a+b)结果出现的次数;同理对于C和D也这样操作,我们每次需要寻找HashMap中是否含有-(a+b)的Key,如果存在,直接让结果加上(a+b)出现的次数即可。
具体代码如下:
1 | class Solution { |

