LeetCode 解説 第 454 章 4 つの数の加法 II
質問の説明
問題解決のアイデア
ハッシュ テーブルには、最初の 2 つの配列の結合された評価と数量がすべて記録され、その後、最後の 2 つの配列の評価が結合されます。値がハッシュ テーブルに存在する場合、その値に対応する数量が累積されます。ステップ タスクの完了後、蓄積された値が返されます
ソリューションコード
func fourSumCount(nums1 []int, nums2 []int, nums3 []int, nums4 []int) (res int) {
m := make(map[int]int)
l := len(nums2) - 1
for i := len(nums1) - 1; i >= 0; i-- {
for j := l; j >= 0; j-- {
m[nums1[i] + nums2[j]]++
}
}
l = len(nums4) - 1
for i := len(nums3) - 1; i >= 0; i-- {
for j := l; j >= 0; j-- {
res+=m[-nums3[i]-nums4[j]]
}
}
return
}