LeetCode || Hash

Posted 舒羽倾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode || Hash相关的知识,希望对你有一定的参考价值。

454. 4Sum II

题意:给四个数组,每个数组内取一个数使得四个数和为0,问有多少种取法

思路:枚举为On4,考虑两个数组,On2枚举所有可能的和,将和的出现次数存入map中,On2枚举另两个数组,看是否加和为0

技术分享图片
class Solution {
public:
    int fourSumCount(vector<int>& A, vector<int>& B, vector<int>& C, vector<int>& D) {
        int na = A.size(), nb = B.size(), nc = C.size(), nd = D.size();
        int cnt = 0;
        map<int, int> mp;
        for (int i = 0; i < na; i++) {
            for (int j = 0; j < nb; j++) {
                int sum = A[i] + B[j];
                if (mp[-sum]) mp[-sum]++;
                else mp[-sum] = 1;
            }
        }
        for (int i = 0; i < nc; i++) {
            for (int j = 0; j < nd; j++) {
                int sum = C[i] + D[j];
                if (mp[sum]) cnt += mp[sum];
            }
        }
        return cnt;
    }
};
View Code

 

以上是关于LeetCode || Hash的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode哈希表 hash_table(共88题)

LeetCode哈希表 hash_table(共88题)

LeetCode哈希表 hash_table(共88题)

leetcode 460. LFU Cache

leetcode_1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold_[二维前缀和](代码片段

如何理解这段代码片段中的两对括号?