Hash Map / Set· 15 min

Find the Difference of Two Arrays

LeetCode #2215 · Easy · Interactive step-by-step visualization

Setup

Example inputnums1 = [1,2,3], nums2 = [2,4,6]
Step 1 / 8

Current step

1 / 8

Build two sets. Sets remove duplicates and give constant-time membership checks. Unique sets: {1,2,3} and {2,4,6}.

Step log

nums1

1
0
2
1
3
2

nums2

2
0
4
1
6
2

firstSet

{1,2,3}

secondSet

{2,4,6}

Active cursor
Comparing
Best or completed
Leaving or removed
find-the-difference-of-two-arrays.java
1public List<List<Integer>> findDifference(int[] nums1, int[] nums2) {
2 Set<Integer> first = Arrays.stream(nums1).boxed().collect(Collectors.toSet());
3 Set<Integer> second = Arrays.stream(nums2).boxed().collect(Collectors.toSet());
4 List<Integer> onlyFirst = new ArrayList<>();
5 for (int value : first) if (!second.contains(value)) onlyFirst.add(value);
6 List<Integer> onlySecond = new ArrayList<>();
7 for (int value : second) if (!first.contains(value)) onlySecond.add(value);
8 return List.of(onlyFirst, onlySecond);
9}
● Java
Time
O(n + m)
Space
O(n + m)
Pattern
hashing
Frames
8