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
class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        # 把长度小的数组转换为 hash set,记为 fewerNums, 另一方记为 moreNums
        if len(nums1) < len(nums2):
            fewerNums = set(nums1)
            moreNums = nums2
        else:
            fewerNums = set(nums2)
            moreNums = nums1
        # 从 moreNums 中向 ans 中添加仅在 fewerNums 中存在的数字
        # 为避免元素重复,所以把 ans 也先声明为 hashset 
        ans = set()
        for v in moreNums:
            if v in fewerNums:
                ans.add(v)
        # 转换为列表再返回
        return list(ans)
class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        return list(set(nums1) & set(nums2))
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐