Python3實現計算兩個陣列的交集演算法示例

2022-10-04 17:42:09 字數 991 閱讀 1213

問題:

給定兩個陣列,寫乙個方法來計算它們的交集。

方案一:利用collections.counter的&運算,一步到位,找到 最小次數 的相同元素。

# -*- coding:utf-8 -*-

#! python3

def intersect(nums1, nums2):

""":type nums1: list[int]

:type nums2: list[int]

:rtype: list[int]

"""import collections

a, b = map(collections.countvagocter, (nums1, nums2))

return list((a & b).elements())

#測試arr1 = [1,2,3,4,5]

arr2 = [3,4,5,6,7]

print(intersect(arr1,arr2))

執行結果:

[3, 4, 5]

方案二:遍歷其中乙個陣列,發現相同元素時新增到新列表中,同時刪去另乙個陣列中的乙個相同元素

# -*- ctvagocoding:utf-8 -*-

#! python3

def intersect(nums1, nums2):

""":type nums1: list[int]

:type nums2: list[int]

:rtype: list[int]

"""re =

for k in nums1:

if k in nums2:

res.append(k)

nums2.remove(k)

return res

#測試arr1 = [1,2,3,4,5]

arr2 = [3,4,5,6,7]

print(intersect(arr1,arr2))

執行結果:

[3, 4, 5]

python實現兩個陣列的交集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 說明 輸出結果中每個元素出現的次數,應與元素在兩個陣列 現次數的最小值一致。我們可以不考慮輸...

計算兩個陣列的差集

給你兩個分別有 5000 個元素的陣列,計算他們的差集 方案1迴圈第乙個陣列 判斷item是否在第二個陣列裡,如果在,則unset掉這個鍵,最後剩下的陣列就是差集 function array diff array 1,array 2 return array 1 方案2 最優 效率最快 將第二個陣...

合併兩個陣列

include using namespace std int sortedinsert int a,int lena,int b,int lenb else printf d n a indexnew printf here lena d,lenb d n indexa,indexb indexn...