2215. Find the Difference of Two Arrays

2215. Find the Difference of Two Arrays

Question

Given two 0-indexed integer arrays nums1 and nums2, return a list answer of size 2 where:

  • answer[0] is a list of all distinct integers in nums1 which are not present in nums2.
  • answer[1] is a list of all distinct integers in nums2 which are not present in nums1.

Note that the integers in the lists may be returned in any order.

Solution

维持两个Hash Set,将两个数组中的数字加入两个集合。

遍历两个数组,如果另一个数组的集合不含有当前元素,则将元素添加到返回列表中。

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Solution {
public List<List<Integer>> findDifference(int[] nums1, int[] nums2) {
List<List<Integer>> ret = new ArrayList<List<Integer>>();
List<Integer> list1 = new ArrayList<Integer>();
List<Integer> list2 = new ArrayList<Integer>();
ret.add(list1);
ret.add(list2);
HashSet<Integer> set1 = new HashSet<Integer>();
HashSet<Integer> set2 = new HashSet<Integer>();
for(int i = 0; i < nums1.length; i++){
set1.add(nums1[i]);
}
for(int i = 0; i < nums2.length; i++){
set2.add(nums2[i]);
}
for(int i = 0 ; i < nums1.length; i++){
if(!set2.contains(nums1[i])){
list1.add(nums1[i]);
set2.add(nums1[i]);
}
}
for(int i = 0 ; i < nums2.length; i++){
if(!set1.contains(nums2[i])){
list2.add(nums2[i]);
set1.add(nums2[i]);
}
}
return ret;
}
}
Author

Xander

Posted on

2023-05-03

Updated on

2023-05-05

Licensed under

Comments