1. 程式人生 > >LeetCode刷題記錄——第350題(兩個陣列的交集 II)

LeetCode刷題記錄——第350題(兩個陣列的交集 II)

題目描述

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

示例 1:

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

示例 2:

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

說明:

輸出結果中每個元素出現的次數,應與元素在兩個陣列中出現的次數一致。
我們可以不考慮輸出結果的順序。

思路分析

  • 從兩者長度小的那一方著手,如果nums1長度較小,則遍歷nums1,將nums1和nums2中的共同元素append進result,然後將該元素從nums2中remove掉,這一步是和349題不同的地方。

程式碼示例

class Solution(object):
    def intersect(self, nums1, nums2):
        """
        :type nums1: List[int]
        :type nums2: List[int]
        :rtype: List[int]
        """
        result = []
        if len(nums1) <= len(nums2):
            for num in nums1:
                if num in
nums2: result.append(num) nums2.remove(num) return result else: for num in nums2: if num in nums1: result.append(num) nums1.remove(num) return result