Leetcode:454. 4Sum II
参考:https://discuss.leetcode.com/topic/67658/simple-java-solution-with-explanation
import java.util.Arrays; import java.util.HashMap; import java.util.Map; /* * 思路:A+B的所有和放在map集合中,key:sum值,value:sum值的个数,然后再计算C+D的取负的和, * 看看有没有map的key中,如果在的话就说明就是一个解。 * */ public class Sum42 { public int fourSumCount(int[] A, int[] B, int[] C, int[] D) { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (int i = 0; i < D.length; i++) { for (int j = 0; j < D.length; j++) { int sum = A[i]+B[j]; if(map.containsKey(sum)){ map.put(sum, map.get(sum)+1); }else{ map.put(sum, 1); } } } int count=0; for (int i = 0; i < D.length; i++) { for (int j = 0; j < D.length; j++) { int sum = -(C[i]+D[j]); if(map.containsKey(sum)){ count = count+map.get(sum); } } } return count; } }
posted on 2017-12-11 08:59 Michael2397 阅读(...) 评论(...) 编辑 收藏