一键网站制作,安徽专业网站建设设计,龙岩天宫山简介,电气工程师报考条件文章目录 题目方法一#xff1a;哈希表 题目 方法一#xff1a;哈希表
将四数之和 借助哈希表简化成两数之和 class Solution {public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {int res 0; //结果集数量MapInteger,Integer map n… 文章目录 题目方法一哈希表 题目 方法一哈希表
将四数之和 借助哈希表简化成两数之和 class Solution {public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {int res 0; //结果集数量MapInteger,Integer map new HashMap();//记录前两个数组的和以及出现次数for(int i : nums1)for(int j : nums2){if(!map.containsKey(ij)) map.put(ij,1);else map.put(ij,map.get(ij)1);}//遍历后面两个数组取出各自的结果 然后再依次去加上map的key是否等于0如果是 则将对应的次数加入结果集//因为这里已经把四数相加 简化成了两数相加了并且相加结果要为0 那么他们之间要相加等于0 那么肯定是互为相反数的for(int i : nums3)for(int j : nums4){int temp (ij)*-1;//取相反数if(map.containsKey(temp)) resmap.get(temp);//得到相加为0 的数的次数}return res;}
}