4 Sum II
Medium
Given four lists A, B, C, D of integer values, compute how many tuples(i, j, k, l)
there are such thatA[i] + B[j] + C[k] + D[l]
is zero.
To make problem a bit easier, all A, B, C, D have same length of N where 0 ≤ N ≤ 500. All integers are in the range of -2^28 to 2^28- 1 and the result is guaranteed to be at most 2^31- 1.
Example:
Solution
HashMap
虽然是KSum系列,但是因为有4个数组,所以做法可以跟KSum很不一样,这里用HashMap记录两个数组中的数之和的计数,再遍历另两个数组,看HashMap中是否存在-sum
。
Take the arrays A and B, and compute all the possible sums of two elements. Put the sum in the Hash map, and increase the hash map value if more than 1 pair sums to the same value.
Compute all the possible sums of the arrays C and D. If the hash map contains the opposite value of the current sum, increase the count of four elements sum to 0 by the counter in the map.
Reference
https://leetcode.com/problems/4sum-ii/discuss/93920/Clean-java-solution-O(n2\
Last updated