2956. Find Common Elements Between Two Arrays
Description
You are given two integer arrays nums1
and nums2
of sizes n
and m
, respectively. Calculate the following values:
answer1
: the number of indicesi
such thatnums1[i]
exists innums2
.answer2
: the number of indicesi
such thatnums2[i]
exists innums1
.
Return [answer1,answer2]
.
Example 1:
Example 2:
Input: nums1 = [4,3,2,3,1], nums2 = [2,2,5,2,3,6]
Output: [3,4]
Explanation:
The elements at indices 1, 2, and 3 in nums1
exist in nums2
as well. So answer1
is 3.
The elements at indices 0, 1, 3, and 4 in nums2
exist in nums1
. So answer2
is 4.
Example 3:
Input: nums1 = [3,4,2,3], nums2 = [1,5]
Output: [0,0]
Explanation:
No numbers are common between nums1
and nums2
, so answer is [0,0].
Constraints:
n == nums1.length
m == nums2.length
1 <= n, m <= 100
1 <= nums1[i], nums2[i] <= 100
Solutions
Solution 1: Hash Table or Array
We can use two hash tables or arrays \(s1\) and \(s2\) to record the elements that appear in the two arrays respectively.
Next, we create an array \(ans\) of length \(2\), where \(ans[0]\) represents the number of elements in \(nums1\) that appear in \(s2\), and \(ans[1]\) represents the number of elements in \(nums2\) that appear in \(s1\).
Then, we traverse each element \(x\) in the array \(nums1\). If \(x\) has appeared in \(s2\), we increment \(ans[0]\). After that, we traverse each element \(x\) in the array \(nums2\). If \(x\) has appeared in \(s1\), we increment \(ans[1]\).
Finally, we return the array \(ans\).
The time complexity is \(O(n + m)\), and the space complexity is \(O(n + m)\). Here, \(n\) and \(m\) are the lengths of the arrays \(nums1\) and \(nums2\) respectively.
1 2 3 4 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|