package com.fishercoder.solutions;

import java.util.HashMap;
import java.util.Map;

public class _454 {
    public static class Solution1 {
        public int fourSumCount(int[] A, int[] B, int[] C, int[] D) {
            Map<Integer, Integer> map = new HashMap();
            int result = 0;
            int len = A.length;
            for (int i = 0; i < len; i++) {
                for (int j = 0; j < len; j++) {
                    int sum = A[i] + B[j];
                    if (map.containsKey(sum)) {
                        map.put(sum, map.get(sum) + 1);
                    } else {
                        map.put(sum, 1);
                    }
                }
            }

            for (int i = 0; i < len; i++) {
                for (int j = 0; j < len; j++) {
                    int sum = -(C[i] + D[j]);
                    if (map.containsKey(sum)) {
                        result += map.get(sum);
                    }
                }
            }

            return result;
        }
    }
}

@@ -176,17 +176,21 @@
 t%5B%5D 
-A
+nums1
 , int%5B%5D 
 B, i
@@ -189,17 +189,21 @@
 t%5B%5D 
-B
+nums2
 , int%5B%5D 
 C, i
@@ -202,17 +202,21 @@
 t%5B%5D 
-C
+nums3
 , int%5B%5D 
 D) %7B
@@ -211,17 +211,21 @@
 , int%5B%5D 
-D
+nums4
 ) %7B%0A    
@@ -325,17 +325,21 @@
 t len = 
-A
+nums1
 .length;
@@ -465,16 +465,24 @@
 m = 
-A
+nums1
 %5Bi%5D + 
-B
+nums2
 %5Bj%5D;
@@ -506,183 +506,51 @@
     
-if (map.containsKey(sum)) %7B%0A                        map.put(sum, map.get(sum) + 1);%0A                    %7D else %7B%0A                        map.put(sum, 1);%0A                    %7D
+map.put(sum, map.getOrDefault(sum, 0) + 1);
 %0A   
@@ -707,16 +707,24 @@
 = -(
-C
+nums3
 %5Bi%5D + 
-D
+nums4
 %5Bj%5D)

refactor 454