Skip to content

Commit 2488960

Browse files
4Sum II
1 parent a931764 commit 2488960

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

MEDIUM/src/medium/_4SumII.java

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package medium;
2+
3+
import java.util.Arrays;
4+
import java.util.HashMap;
5+
import java.util.Map;
6+
7+
public class _4SumII {
8+
9+
/**Although it's tagged with BinarySearch and HashTable, I didn't come up with a good BinarySearch solution, then looked at this post:
10+
* https://discuss.leetcode.com/topic/67658/simple-java-solution-with-explanation*/
11+
public static int fourSumCount(int[] A, int[] B, int[] C, int[] D) {
12+
Map<Integer, Integer> map = new HashMap();
13+
int result = 0, len = A.length;
14+
for (int i = 0; i < len; i++){
15+
for (int j = 0; j < len; j++){
16+
int sum = A[i] + B[j];
17+
if (map.containsKey(sum)){
18+
map.put(sum, map.get(sum)+1);
19+
} else {
20+
map.put(sum, 1);
21+
}
22+
}
23+
}
24+
25+
for (int i = 0; i < len; i++){
26+
for (int j = 0; j < len; j++){
27+
int sum = -(C[i] + D[j]);
28+
if(map.containsKey(sum)) result += map.get(sum);
29+
}
30+
}
31+
32+
return result;
33+
}
34+
35+
public static void main(String...args){
36+
int[] A = new int[]{1,2};
37+
int[] B = new int[]{-2,-1};
38+
int[] C = new int[]{-1,2};
39+
int[] D = new int[]{0,2};
40+
41+
System.out.println(fourSumCount(A, B, C, D));
42+
}
43+
}

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
|459|[Repeated Substring Pattern](https://leetcode.com/problems/repeated-substring-pattern/)|[Solution](../../blob/master/EASY/src/easy/RepeatedSubstringPattern.java)| O(n)|O(n) | Easy| KMP
77
|456|[132 Pattern](https://leetcode.com/problems/132-pattern/)|[Solution](../../blob/master/MEDIUM/src/medium/_132Pattern.java) | O(n) |O(n) | Medium| Stack
88
|455|[Assign Cookies](https://leetcode.com/problems/assign-cookies/)|[Solution](../../blob/master/EASY/src/easy/AssignCookies.java)| O(n)|O(1) | Easy|
9+
|454|[4Sum II](https://leetcode.com/problems/4sum-ii/)|[Solution](../../blob/master/MEDIUM/src/medium/_4SumII.java) | O(n) |O(n) | Medium| HashMap
910
|453|[Minimum Moves to Equal Array Elements](https://leetcode.com/problems/minimum-moves-to-equal-array-elements/)|[Solution](../../blob/master/EASY/src/easy/MinimumMovestoEqualArrayElements.java)| O(n)|O(1) | Easy|
1011
|447|[Number of Boomerangs](https://leetcode.com/problems/number-of-boomerangs/)|[Solution](../../blob/master/EASY/src/easy/NumberofBoomerangs.java)| O(n^2)|O(n) | Easy| HashMap
1112
|441|[Arranging Coins](https://leetcode.com/problems/arrange-coins/)|[Solution](../../blob/master/EASY/src/easy/ArrangingCoins.java)| O(n)|O(1) | Easy|

0 commit comments

Comments
 (0)