Python實現 兩個陣列的交集 的兩種方法

2021-08-28 17:52:57 字數 1403 閱讀 1735

給定兩個陣列,寫乙個方法輸出它們的交集

example 1:

input: nums1 = [1,2,2,1], nums2 = [2,2]

output: [2,2]

example 2:

input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]

output: [4,9]

注意:

輸出結果中每乙個元素出現的次數和兩個陣列中 該元素同時出現的次數的一致

輸出結果元素順序不做要求

高階:如果給定的陣列已經按序排好,如何調整優化你的演算法?

如果nums1的長度小於nums2,哪一種演算法更好?

如果nums2的元素儲存在磁碟上,磁碟記憶體有限以致於無法一次性載入所有元素,此時該怎麼辦?

def intersect(self, nums1, nums2):

""":type nums1: list[int]

:type nums2: list[int]

:rtype: list[int]

"""nums1.sort()

nums2.sort()

numslist =

count1 = 0

count2 = 0

while count1 < len(nums1) and count2 < len(nums2):

if nums1[count1] == nums2[count2]:

count1 += 1

count2 += 1

elif nums1[count1] < nums2[count2]:

count1 += 1

else:

count2 += 1

return numslist

def intersect(self, nums1, nums2):

""":type nums1: list[int]

:type nums2: list[int]

:rtype: list[int]

"""nums1dic = {}

numslist =

for i in nums1:

if nums1dic.get(i):

nums1dic[i] += 1

else:

nums1dic[i] = 1

for i in nums2:

if nums1dic.get(i) > 0:

nums1dic[i] -= 1

return numslist

演算法題來自:

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

兩個陣列的交集

給定兩個陣列,編寫乙個函式來計算它們的交集。示例 1 輸入 nums1 1,2,2,1 nums2 2,2 輸出 2,2 示例 2 輸入 nums1 4,9,5 nums2 9,4,9,8,4 輸出 4,9 說明 輸出結果中每個元素出現的次數,應與元素在兩個陣列 現的次數一致。我們可以不考慮輸出結果...

兩個陣列的交集

題目 給定兩個陣列,編寫乙個函式來計算它們的交集。示例 1 輸入 nums1 1,2,2,1 nums2 2,2 輸出 2 示例 2 輸入 nums1 4,9,5 nums2 9,4,9,8,4 輸出 9,4 說明 首先說一下我自己的 菜雞 思路 我先是想先去重第第乙個陣列 nums1 然後迴圈判斷...