LeetCode-454.四数相加II

题目详解

相关链接

思路

看完代码随想录之后的想法

  • 将数组分为两部分的思路很好,之前没想到

实现过程中遇到的困难

代码

TypeScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function fourSumCount(nums1: number[], nums2: number[], nums3: number[], nums4: number[]): number {
let res = 0
const hash = new Map<number, number>()
for (const v1 of nums1) {
for (const v2 of nums2) {
const v = v1 + v2
hash.set(v, (hash.get(v) || 0) + 1)
}
}
for (const v1 of nums3) {
for (const v2 of nums4) {
res += (hash.get(0 - (v1 + v2)) || 0)
}
}
return res
}

时间复杂度:O(n^2)
空间复杂度:O(n)

收获

  • 哈希法的经典题目
-------- 本文结束 感谢阅读 --------
0%