leetcode 349 两个数组的交集

去重,排序,然后开双指针去二分。用 hashMap 集合 set 缓存也可以。

class Solution(object):
    def intersection(self, nums1, nums2):
        """
        :type nums1: List[int]
        :type nums2: List[int]
        :rtype: List[int]
        """
        if not nums1 or not nums2:
            return []
        nums1 = sorted(list(set(nums1)))
        nums2 = sorted(list(set(nums2)))
        result = []
        i, j = 0, 0
        while i < len(nums1) and j < len(nums2):
            if nums1[i] < nums2[j]:
                i += 1
            elif nums1[i] > nums2[j]:
                j += 1
            else:
                result.append(nums1[i])
                i += 1
                j += 1
        return result

你可能感兴趣的:(leetcode 349 两个数组的交集)