给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。

为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过 231 - 1 。

例如:

输入:
A = [ 1, 2]
B = [-2,-1]
C = [-1, 2]
D = [ 0, 2]

输出:
2

解释:
两个元组如下:

  1. (0, 0, 0, 1) -> A[0] + B[0] + C[0] + D[1] = 1 + (-2) + (-1) + 2 = 0
  2. (1, 1, 0, 0) -> A[1] + B[1] + C[0] + D[0] = 2 + (-1) + (-1) + 0 = 0

代码

class Solution {public int fourSumCount(int[] A, int[] B, int[] C, int[] D) {Map<Integer,Integer> map=new HashMap<>();int res=0;for(int i=0;i<A.length;i++)for(int j=0;j<B.length;j++)//产生A,B数组相加 所有可能的和,并记录出现次数map.put(A[i]+B[j],map.getOrDefault(A[i]+B[j],0)+1);for(int i=0;i<C.length;i++)//产生c,d数组相加 所有可能的和,并检查map中是否有相加为0的数字for(int j=0;j<D.length;j++)if(map.containsKey(-C[i]-D[j]))res+=map.get(-C[i]-D[j]);return res;}
}

leetcode 454. 四数相加 II(哈希表)相关推荐

  1. LeetCode 454. 四数相加 II【哈希表】

    454. 四数相加 II 给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 <= i, j ...

  2. LeetCode 454. 四数相加 II 思考分析

    题目 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0. 为了使问题简单化,所有 ...

  3. LeetCode 454. 四数相加 II(哈希)

    1. 题目 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0. 为了使问题简单化 ...

  4. leetcode 454. 四数相加 II c语言

    如题: 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0.为了使问题简单化,所有 ...

  5. 给定4个数字组合的C语言算法,leetcode 454. 四数相加 II c语言

    如题: 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0. 为了使问题简单化,所 ...

  6. 代码随想录算法训练营第07天 | LeetCode 454.四数相加2,383. 赎金信,15. 三数之和,18. 四数之和,总结

    LeetCode [454. 四数相加 II] 题目:给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足 ...

  7. 代码随想录算法训练营day07| 454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和

    Leetcode 454.四数相加II 题目链接 思路:求四数相加之和,将四数两两相加,判断两两相加的数是否和为0 定义一个map,key放两数之和,value放两数之和出现的次数 两层for循环将前 ...

  8. 代码随想录算法训练营第6天 | 454. 四数相加 II 383. 赎金信 15. 三数之和 18. 四数之和

    一.Leetcode 454. 四数相加 II 相当于两数相加.但是呢很巧妙的是,卡哥在遍历CD数组时把查哈希表的方法融入了进去.学习一下. 二.Leetcode 383. 赎金信 更简单了,主要是审 ...

  9. 代码随想录算法训练营第七天| 454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和

    Leetcode 454.四数相加II 思路分析: 本题直观的想法是采取暴力法,四数相加就用四层for循环.虽然能得到结果,但时间复杂度为o(n4),当数组长度较大时,Leetcode便提示超时.该方 ...

最新文章

  1. css在兼容模式下无法引用_如何在CSS中使用深色模式
  2. php中转,使用 PHP Curl 做数据中转
  3. hdu 1692(枚举+剪枝)
  4. Symbian S60 Carbide.c++ v2.3开发环境搭建
  5. 实验 使用 vivado zedboard GPIO 开关 开控制 LED
  6. 28muduo_net库源码分析(四)
  7. JVM,DVM,JIT,AOT,ART理解
  8. AB PLC仿真过程
  9. 计算机显示器性能指标的是,简述显示器的主要性能指标
  10. SCAU软件开发基础C++复习
  11. 从400亿估值的链家网成长为4000亿的房地产产业平台,贝壳做对了这三点创新
  12. JAVA中 BufferedImage、ImageIO用法
  13. ../,./,/的区别
  14. java rmi 推送_java 企业微信推送消息 示例源码
  15. 如何制作一个简单的16位CPU
  16. 在uni-app中使用element-ui
  17. 李宏毅机器学习之Deep Learning简介
  18. 如何成为一名合格的运筹优化算法工程师?
  19. android蓝牙传文件开发,Android Bluetooth文件传输
  20. 使用Quasar进行木马植入

热门文章

  1. 在ARM开发板的嵌入式linux系统上运行的QT程序,必须得要在linux里用QT编吗
  2. tiny4412初期环境搭建
  3. 项目中需要总结的内容
  4. delphi7 提示注册过期问题
  5. Discuz!NT数据库读写分离方案
  6. 广州中山大道BRT不开“巨无霸”公交车
  7. 定时任务(Spring Cloud Task)
  8. Vue项目中遇到了大文件分片上传的问题
  9. Lecture 7 Hashing Table I
  10. Linux shell 脚本SDK 打包实践, 收集assets和apk, 上传FTP