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;

    }

};

相关文章:

  • 2022-12-23
  • 2021-07-29
  • 2021-10-19
  • 2022-12-23
  • 2021-11-07
  • 2021-05-30
  • 2021-07-05
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-08
  • 2022-12-23
  • 2021-06-23
  • 2022-12-23
  • 2021-10-24
相关资源
相似解决方案