跳到主要内容

454.四数相加II

链接:454.四数相加II
难度:Medium
标签:数组、哈希表
简介:给定四个包含整数的数组列表  A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得  A[i] + B[j] + C[k] + D[l] = 0。

题解 1 - typescript

  • 编辑时间:2020-11-27
  • 执行用时:532ms
  • 内存消耗:71.1MB
  • 编程语言:typescript
  • 解法介绍:分组储存。
function fourSumCount(A: number[], B: number[], C: number[], D: number[]): number {
let ans = 0;
const cache: Record<number, number> = {};
const setCache = (c: number) => {
cache[c] = 1 + (cache[c] ? cache[c] : 0);
};
for (const n1 of A)
for (const n2 of B) {
setCache(n1 + n2);
}
for (const n1 of C)
for (const n2 of D) {
ans += cache[-n1 - n2] ?? 0;
}
return ans;
}