1. 给你四个整数数组 nums1nums2nums3 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:
    2. 0 <= i, j, k, l < n
    3. nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0

    两个双重循环比一个四重循环更快

    1. class Solution {
    2. public int fourSumCount(int[] nums1, int[] nums2,
    3. int[] nums3, int[] nums4) {
    4. Map<Integer,Integer> map = new HashMap();
    5. int temp = 0;
    6. int result = 0;
    7. //两个双重循环
    8. for(int i=0;i<nums1.length;i++){
    9. for(int j=0;j<nums2.length;j++){
    10. temp = nums1[i] + nums2[j];
    11. map.put(temp , map.getOrDefault(temp,0)+1);
    12. }
    13. }
    14. for(int m=0;m<nums3.length;m++){
    15. for(int n=0;n<nums4.length;n++){
    16. temp = nums3[m] + nums4[n];
    17. if(map.containsKey(0- temp)){
    18. result += map.get(0 - temp);
    19. }
    20. }
    21. }
    22. return result;
    23. }
    24. }