Skip to content

Commit 1870f7a

Browse files
solves #2248: Intersection of Multiple Arrays
in java
1 parent f7d24ca commit 1870f7a

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -730,7 +730,7 @@
730730
| 2236 | [Root Equals Sum of Children](https://leetcode.com/problems/root-equals-sum-of-children) | [![Java](assets/java.png)](src/RootEqualsSumOfChildren.java) | |
731731
| 2239 | [Find Closest Number to Zero](https://leetcode.com/problems/find-closest-number-to-zero) | [![Java](assets/java.png)](src/FindClosestNumberToZero.java) | |
732732
| 2243 | [Calculate Digit Sum of a String](https://leetcode.com/problems/calculate-digit-sum-of-a-string) | [![Java](assets/java.png)](src/CalculateDigitSumOfAString.java) | |
733-
| 2248 | [Intersection of Multiple Arrays](https://leetcode.com/problems/intersection-of-multiple-arrays) | | |
733+
| 2248 | [Intersection of Multiple Arrays](https://leetcode.com/problems/intersection-of-multiple-arrays) | [![Java](assets/java.png)](src/IntersectionOfMultipleArrays.java) | |
734734
| 2255 | [Count Prefixes of a Given String](https://leetcode.com/problems/count-prefixes-of-a-given-string) | | |
735735
| 2259 | [Remove Digit From Number to Maximize Result](https://leetcode.com/problems/remove-digit-from-number-to-maximize-result) | | |
736736
| 2264 | [Largest 3-Same-Digit Number in String](https://leetcode.com/problems/largest-3-same-digit-number-in-string) | | |

src/IntersectionOfMultipleArrays.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// https://leetcode.com/problems/intersection-of-multiple-arrays
2+
// T: O()
3+
// S: O()
4+
5+
import java.util.ArrayList;
6+
import java.util.HashSet;
7+
import java.util.List;
8+
import java.util.Set;
9+
10+
public class IntersectionOfMultipleArrays {
11+
public List<Integer> intersection(int[][] nums) {
12+
Set<Integer> set = setFrom(nums[0]);
13+
for (int index = 1 ; index < nums.length ; index++) {
14+
final Set<Integer> other = setFrom(nums[index]);
15+
set = intersection(set, other);
16+
}
17+
final List<Integer> list = toList(set);
18+
list.sort(Integer::compareTo);
19+
return list;
20+
}
21+
22+
private Set<Integer> setFrom(int[] array) {
23+
final Set<Integer> set = new HashSet<>();
24+
for (int element : array) {
25+
set.add(element);
26+
}
27+
return set;
28+
}
29+
30+
private List<Integer> toList(final Set<Integer> set) {
31+
return new ArrayList<>(set);
32+
}
33+
34+
private Set<Integer> intersection(Set<Integer> set1, Set<Integer> set2) {
35+
final Set<Integer> result = new HashSet<>();
36+
for (int element : set1) {
37+
if (set2.contains(element)) result.add(element);
38+
}
39+
return result;
40+
}
41+
}

0 commit comments

Comments
 (0)