Warning: file_put_contents(/datas/wwwroot/jiajiahui/core/caches/caches_template/2/default/show.php): failed to open stream: Permission denied in /datas/wwwroot/jiajiahui/core/libraries/classes/template_cache.class.php on line 55

Warning: chmod(): Operation not permitted in /datas/wwwroot/jiajiahui/core/libraries/classes/template_cache.class.php on line 56
leetcode-454-四数相加II - 源码之家

leetcode-454-四数相加II

leetcode-454-四数相加II

class Solution {

public:

    int fourSumCount(vector<int>& A, vector<int>& B, vector<int>& C, vector<int>& D) {

        int N = A.size(), res =0;

        map<int, int> count1, count2, count3;

        for (int i = 0; i < N; i++) {  //计算A组freq

            count1[A[i]]++;

        }

        for (int i = 0; i < N; i++) {

            for (auto it = count1.begin(); it != count1.end(); it++) { //计算A+B组freq,存在count2中

                count2[(*it).first + B[i]] += (*it).second;

            }

        }

        count1.clear();

        for (int i = 0; i < N; i++) { //计算C的频率

            count1[C[i]]++;

        }

        for (int i = 0; i < N; i++) {

            for (auto it = count1.begin(); it != count1.end(); it++) { //计算C+D组的freq,存在count3中

                count3[(*it).first + D[i]] += (*it).second;

            }

        }

        for (auto it = count2.begin(); it != count2.end(); it++) {

            res += (*it).second * (count3[-((*it).first)]);

        }

        return res;

    }

};