1. 程式人生 > >leetcode 349. 兩個陣列的交集 python

leetcode 349. 兩個陣列的交集 python

給定兩個陣列,編寫一個函式來計算它們的交集。

示例 1:

輸入: nums1 = [1,2,2,1], nums2 = [2,2]
輸出: [2]

示例 2:

輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
輸出: [9,4]

說明:

  • 輸出結果中的每個元素一定是唯一的。
  • 我們可以不考慮輸出結果的順序。
class Solution:
    def intersection(self, nums1, nums2):
        """
        :type nums1: List[int]
        :type nums2: List[int]
        :rtype: List[int]
        """
        lst_t = []
        lst_min = list(set(nums1))
        lst_max = list(set(nums2))
        
        for idx in lst_min:
            if idx in lst_max:
                lst_t.append(idx)
        return list(lst_t)
class Solution:
    def intersection(self, nums1, nums2):
        """
        :type nums1: List[int]
        :type nums2: List[int]
        :rtype: List[int]
        """
        s1, s2 = set(nums1), set(nums2)
        return list(s1.intersection(s2))

>>> set.intersection(s,d)#獲取s,d的交集


{1}
>>> s = {1,2,3,4,5}
>>> d = {2,3,4,5,6}
>>> s.intersection(d)
{2, 3, 4, 5}
>>> s.union(d)#並集
{1, 2, 3, 4, 5, 6}
>>> s.difference(d)#獲取差集s-d
{1}
>>> d.difference(s)#獲取差集d-s
{6}