-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathintersectionOfTwoArrays.ts
More file actions
42 lines (31 loc) · 892 Bytes
/
Copy pathintersectionOfTwoArrays.ts
File metadata and controls
42 lines (31 loc) · 892 Bytes
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
31
32
33
34
35
36
37
38
39
40
41
42
/*
Given two integer arrays nums1 and nums2, return an array of their intersection. Each element in the result must be unique and you may return the result in any order.
Example 1:
Input: nums1 = [1,2,2,1], nums2 = [2,2]
Output: [2]
Example 2:
Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
Output: [9,4]
Explanation: [4,9] is also accepted.
Constraints:
1 <= nums1.length, nums2.length <= 1000
0 <= nums1[i], nums2[i] <= 1000
*/
function intersection(nums1: number[], nums2: number[]): number[] {
// Approach 1: Using hashmap
const set1 = new Set<number>();
const set2 = new Set<number>();
const result = [];
for (let i = 0; i < nums1.length; i++) {
if (!set1.has(nums1[i])) {
set1.add(nums1[i]);
}
}
for (let i = 0; i < nums2.length; i++) {
if (set1.has(nums2[i]) && !set2.has(nums2[i])) {
result.push(nums2[i]);
set2.add(nums2[i]);
}
}
return result;
}