454. 四数相加 II
func fourSumCount(nums1 []int, nums2 []int, nums3 []int, nums4 []int) int {
m := make(map[int]int)
count := 0
for _, a := range nums1 {
for _, b := range nums2 {
m[a+b]++
}
}
for _, c := range nums3 {
for _, d := range nums4 {
if c, ok := m[-(c + d)]; ok {
count += c //这里特别注意,不要写成count++
}
}
}
return count
}
虽说是经典哈希表问题,但一开始确实不太能想到用哈希表来做,直接就是暴力
题目对应的方法,这种感觉,还是要多培养,慢慢形成映射
暴力解法首先想到的肯定是四个for循环,显然时间复杂度n^4
若分为1组和3组,则显然时间复杂度n^3
采用上述方法n^2
代码随想录里提到的0015.三数之和、0018.四数之和还没做到,这里先不管