package com.zmz.algorithm.hashtable;
import java.util.HashMap;
/**
* @author 张明泽
* Create by 2022/5/30 23:18
* 四数相加II
* LeetCode-454
*/
public class FourTogether2 {
public static void main(String[] args) {
int[] nums1 = {1,2};
int[] nums2 = {-2,-1};
int[] nums3 = {-1,2};
int[] nums4 = {0,2};
int result = fourSum(nums1, nums2, nums3, nums4);
System.out.println(result);
}
/**
* 利用 hashMap 解决, K 存 a + b 的值, V 存 a + b 和出现的次数
*/
public static int fourSum(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {
HashMap<Integer,Integer> hashMap = new HashMap<>();
for (int i : nums1) {
for (int j : nums2) {
int sum = i + j;
if (hashMap.containsKey(sum)) {
hashMap.put(sum,hashMap.get(sum) + 1);
} else {
hashMap.put(sum, 1);
}
}
}
// 判断
int result = 0;
for (int i : nums3) {
for (int j : nums4) {
int sum = i + j;
if (hashMap.containsKey(0 - sum)) {
result = result + hashMap.get(0 - sum);
}
}
}
return result;
}
}
最后修改:2022 年 06 月 02 日 10 : 02 AM
© 允许规范转载