4Sum II

作者: 我叫胆小我喜欢小心 | 来源:发表于2017-04-16 17:36 被阅读11次

    题目来源
    四个数组,每个数组取一个元素,求和为target的种数。
    划分为两块,用哈希,代码如下:

    class Solution {
    public:
        int fourSumCount(vector<int>& A, vector<int>& B, vector<int>& C, vector<int>& D) {
            int n1 = A.size(), n2 = B.size(), n3 = C.size(), n4 = D.size();
            unordered_map<int, int> mapAB, mapCD;
            for (int i=0; i<n1; i++)
                for (int j=0; j<n2; j++) {
                    mapAB[A[i]+B[j]]++;
                }
            int res = 0;
            for (int i=0; i<n3; i++)
                for (int j=0; j<n4; j++) {
                    mapCD[C[i]+D[j]]++;
                    if (mapAB.count(0-(C[i]+D[j])) != 0)
                        res += mapAB[0-(C[i]+D[j])];
                }
            return res;
        }
    };
    

    相关文章

      网友评论

          本文标题:4Sum II

          本文链接:https://www.haomeiwen.com/subject/yhwaattx.html