1. 程式人生 > >[leetcode]Python實現-349.兩個陣列的交集

[leetcode]Python實現-349.兩個陣列的交集

349.兩個陣列的交集

描述

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

例子

給定 num1= [1, 2, 2, 1], nums2 = [2, 2], 返回 [2].

提示

每個在結果中的元素必定是唯一的。
我們可以不考慮輸出結果的順序。

class Solution:
    def intersection(self, nums1, nums2):
        """
        :type nums1: List[int]
        :type nums2: List[int]
        :rtype: List[int]
        """
l1 = len(nums1) l2 = len(nums2) res = set() if l1 <= l2: s = nums1 l = nums2 else: l = nums1 s = nums2 for i in l: if i in s: res.add(i) return list(res)

別人的

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))

關於Python的set有一個intersection()方法。

 intersection(...
) | Return the intersection of two sets as a new set. | | (i.e. all elements that are in both sets.)

求交集、並集和差集

>>> 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}