454. 4Sum II

Link

Solution

透過Map

 public int fourSumCount(int[] A, int[] B, int[] C, int[] D) {
        Map<Integer, Integer> map = new HashMap<>();
        int N = A.length;
        for(int i = 0; i < N; i++){
            for(int j = 0; j < N; j++){
                map.compute(A[i]+B[j], (k, v)->{
                    if(v == null) return 1;
                    else return v+1;
                });    
            }
        }
        int ans = 0;
        for(int i = 0; i < N; i++){
            for(int j = 0; j < N; j++){
                ans += map.getOrDefault(-1 * (C[i] + D[j]), 0);
            }
        }
        return ans;
        
    }

Last updated

Was this helpful?