代码随想录35期Day07-哈希表

由 Greyson 发布

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. 三数之和


扫描二维码,在手机上阅读
收藏

0条评论

发表评论


验证码