問題:
給定兩個陣列,寫乙個方法來計算它們的交集。
方案一:利用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...