454. 四数相加 II

给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:0 <= i, j, k, l < nnums1[i] + nums2[j] + nums3[k] + nums4[l] == 0

思路:暴力模拟,四重for循环会超时,可以拆解为两个两重for循环

cpp 复制代码
class Solution {
public:
    int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {
        unordered_map<int,int> m;
        
        for(int a:nums1)
        {
            for(int b:nums2)
            {
                //m[a+b]将a+b存到key
                //m[a+b]++将a+b对应的value++
                m[a+b]++;
            }
        }
        int ans=0;
        for(int c:nums3)
        {
            for(int d:nums4)
            {
                if(m.find(0-c-d)!=m.end())
                {
                    ans+=m[0-c-d];
                }
            }
        }
        return ans;
    }
};
相关推荐
Ayanami_Reii7 分钟前
区间不同数的个数-树状数组/线段树/莫队/主席树
数据结构·c++·算法·线段树·树状数组·主席树·莫队
李玮豪Jimmy16 分钟前
Day37:动态规划part10(300.最长递增子序列、674.最长连续递增序列 、718.最长重复子数组)
算法·动态规划
歌_顿24 分钟前
Embedding 模型word2vec/glove/fasttext/elmo/doc2vec/infersent学习总结
人工智能·算法
Echo_NGC223726 分钟前
【KL 散度】深入理解 Kullback-Leibler Divergence:AI 如何衡量“像不像”的问题
人工智能·算法·机器学习·散度·kl
CoderYanger39 分钟前
C.滑动窗口-求子数组个数-越长越合法——3325. 字符至少出现 K 次的子字符串 I
c语言·数据结构·算法·leetcode·职场和发展·哈希算法·散列表
sin_hielo1 小时前
leetcode 3606
数据结构·算法·leetcode
Xの哲學2 小时前
Linux DRM 架构深度解析
linux·服务器·算法·架构·边缘计算
qq_433554542 小时前
C++树形DP(树上分组背包)
c++·算法·深度优先
电子_咸鱼2 小时前
常见面试题——滑动窗口算法
c++·后端·python·算法·leetcode·哈希算法·推荐算法
mit6.8243 小时前
hash+presum判等|幻方0
算法