leetcode 454. 四数相加 II(哈希表)
给定四个包含整数的数组列表 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
解释:
两个元组如下:
- (0, 0, 0, 1) -> A[0] + B[0] + C[0] + D[1] = 1 + (-2) + (-1) + 2 = 0
- (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(哈希表)相关推荐
- LeetCode 454. 四数相加 II【哈希表】
454. 四数相加 II 给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 <= i, j ...
- LeetCode 454. 四数相加 II 思考分析
题目 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0. 为了使问题简单化,所有 ...
- LeetCode 454. 四数相加 II(哈希)
1. 题目 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0. 为了使问题简单化 ...
- leetcode 454. 四数相加 II c语言
如题: 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0.为了使问题简单化,所有 ...
- 给定4个数字组合的C语言算法,leetcode 454. 四数相加 II c语言
如题: 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0. 为了使问题简单化,所 ...
- 代码随想录算法训练营第07天 | LeetCode 454.四数相加2,383. 赎金信,15. 三数之和,18. 四数之和,总结
LeetCode [454. 四数相加 II] 题目:给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足 ...
- 代码随想录算法训练营day07| 454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和
Leetcode 454.四数相加II 题目链接 思路:求四数相加之和,将四数两两相加,判断两两相加的数是否和为0 定义一个map,key放两数之和,value放两数之和出现的次数 两层for循环将前 ...
- 代码随想录算法训练营第6天 | 454. 四数相加 II 383. 赎金信 15. 三数之和 18. 四数之和
一.Leetcode 454. 四数相加 II 相当于两数相加.但是呢很巧妙的是,卡哥在遍历CD数组时把查哈希表的方法融入了进去.学习一下. 二.Leetcode 383. 赎金信 更简单了,主要是审 ...
- 代码随想录算法训练营第七天| 454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和
Leetcode 454.四数相加II 思路分析: 本题直观的想法是采取暴力法,四数相加就用四层for循环.虽然能得到结果,但时间复杂度为o(n4),当数组长度较大时,Leetcode便提示超时.该方 ...
最新文章
- css在兼容模式下无法引用_如何在CSS中使用深色模式
- php中转,使用 PHP Curl 做数据中转
- hdu 1692(枚举+剪枝)
- Symbian S60 Carbide.c++ v2.3开发环境搭建
- 实验 使用 vivado zedboard GPIO 开关 开控制 LED
- 28muduo_net库源码分析(四)
- JVM,DVM,JIT,AOT,ART理解
- AB PLC仿真过程
- 计算机显示器性能指标的是,简述显示器的主要性能指标
- SCAU软件开发基础C++复习
- 从400亿估值的链家网成长为4000亿的房地产产业平台,贝壳做对了这三点创新
- JAVA中 BufferedImage、ImageIO用法
- ../,./,/的区别
- java rmi 推送_java 企业微信推送消息 示例源码
- 如何制作一个简单的16位CPU
- 在uni-app中使用element-ui
- 李宏毅机器学习之Deep Learning简介
- 如何成为一名合格的运筹优化算法工程师?
- android蓝牙传文件开发,Android Bluetooth文件传输
- 使用Quasar进行木马植入