349. Intersection of Two Arrays
Problem
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.
https://leetcode.cn/problems/intersection-of-two-arrays/
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 <= 10000 <= nums1[i], nums2[i] <= 1000
Test Cases
class Solution:
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:solution_test.py下载完整源码
import pytest
from solution import Solution
@pytest.mark.parametrize('nums1, nums2, expected', [
([1,2,2,1], [2,2], [2]),
([4,9,5], [9,4,9,8,4], [9,4]),
])
@pytest.mark.parametrize('sol', [Solution()])
def test_solution(sol, nums1, nums2, expected):
res = sol.intersection(nums1, nums2)
assert sorted(res) == sorted(expected)
Thoughts
用集合记录两个数组的数字,求交集即可。
时间复杂度 O(m + n),空间复杂度 O(m + n)。
Code
solution.py下载完整源码
class Solution:
def intersection(self, nums1: list[int], nums2: list[int]) -> list[int]:
s1 = set(nums1)
s2 = set(nums2)
return list(s1 & s2)
评论需要 JavaScript。