1. 問題描述:
給定兩個陣列,編寫乙個函式來計算它們的交集。
示例 1:
輸入:nums1 = [1,2,2,1], nums2 = [2,2]
輸出:[2]
示例 2:
輸入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
輸出:[9,4]
說明:
2. 思路分析:
① 乙個比較容易想到的是統計出nums1中所有出現的數字,然後遍歷nums2看當前的數字是否也在nums2中,統計出現的數字可以使用字典來進行對映,這樣在遍歷nums2中的數字的時候可以很快地檢查出當前的數字是否在nums1中也出現過
② 除了使用字典進行對映的方法還可以使用python中的&運算子來直接求解兩個集合的交集
3. **如下:
from typing import list
import collections
class solution:
def intersection(self, nums1: list[int], nums2: list[int]) -> list[int]:
dic = collections.defaultdict(int)
res = list()
for x in nums1:
dic[x] += 1
for x in nums2:
if dic[x] > 0 and x not in res:
dic[x] -= 1
return res
from typing import list
class solution:
def intersection(self, nums1: list[int], nums2: list[int]) -> list[int]:
s = set()
res = list()
for x in nums1:
s.add(x)
for x in nums2:
if x in s:
s.remove(x)
return res
&運算:
class solution:
def intersection(self, nums1, nums2):
set1 = set(nums1)
set2 = set(nums2)
return list(set2 & set1)
349 兩個陣列的交集
解題思路 1.分別對兩個數字排序 2.遍歷排序胡的陣列nums1和nums2,索引分別用i,j表示,1 當nums1 i 2 當nums1 i nums j 時,則將j 3 準備乙個list陣列。若兩個數相等,則i j 若當前數nums1 i 在list陣列中未出現,則將當前數存到陣列中,只要有乙個...
349 兩個陣列的交集
給定兩個陣列,編寫乙個函式來計算它們的交集。示例 1 輸入 nums1 1,2,2,1 nums2 2,2 輸出 2 示例 2 輸入 nums1 4,9,5 nums2 9,4,9,8,4 輸出 9,4 說明 輸出結果中的每個元素一定是唯一的。我們可以不考慮輸出結果的順序。注意一 對於交集中的重複的...
349 兩個陣列的交集
給定兩個陣列,編寫乙個函式來計算它們的交集。示例 1 輸入 nums1 1,2,2,1 nums2 2,2 輸出 2 示例 2 輸入 nums1 4,9,5 nums2 9,4,9,8,4 輸出 9,4 說明 輸出結果中的每個元素一定是唯一的。我們可以不考慮輸出結果的順序。我的提交 class so...