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 。
例如:
输入:
A = [ 1, 2]
B = [-2,-1]
C = [-1, 2]
D = [ 0, 2]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/4sum-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public int fourSumCount(int[] A, int[] B, int[] C, int[] D) {
int count=0;
HashMap<Integer,Integer> map=new HashMap<>();
for(int a:A)
{
for(int b:B)
{
int sum=a+b;
map.put(sum,map.getOrDefault(sum,0)+1);
}
}
for(int c:C)
{
for(int d:D)
{
int sum=c+d;
count+=map.getOrDefault(-sum,0);
}
}
return count;
}
}