454. 四数相加 II
- 降维打击
func fourSumCount(nums1 []int, nums2 []int, nums3 []int, nums4 []int) int {
mp1 := make(map[int]int)
res := 0
// 合并num1 + num2的所有组合
for _, i := range nums1 {
for _, j := range nums2 {
mp1[i+j]++
}
}
//
for _, i := range nums3 {
for _, j := range nums4 {
res += mp1[-(i+j)]
}
}
return res
}
383. 赎金信
- 普通哈希
func canConstruct(ransomNote string, magazine string) bool {
if len(ransomNote) > len(magazine) {
return false
}
mp1 := make([]int, 512)
mp2 := make([]int, 512)
for _, c := range ransomNote {
mp1[c]++
}
for _, c := range magazine {
mp2[c]++
}
for i := range 512 {
if mp1[i] > 0 && mp1[i] > mp2[i] {
return false
}
}
return true
}
15. 三数之和
扫描二维码,在手机上阅读
推荐阅读:
收藏