在 Python 中進行兩個陣列的交集運算
假設我們有兩個陣列 A 和 B,這些陣列中有一些元素。我們需要找出它們的交集。因此,如果 A = [1, 4, 5, 3, 6],且 B = [2, 3, 5, 7, 9],則交集為 [3, 5]
要解決這個問題,我們需要按照以下步驟操作:-
- 取兩個陣列 A 和 B
- 如果 A 的長度小於 B 的長度,則交換它們
- 計算陣列中元素出現的頻率,並將它們儲存到 m 中
- 對於 B 中的每個元素 e,如果 e 存在於 m 中,並且頻率不為零,
- 將 m[e] 的頻率減 1
- 將 e 插入到結果陣列中
- 返回結果陣列
示例
讓我們檢視以下實現,以加深理解:-
class Solution(object):
def intersect(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
m = {}
if len(nums1)<len(nums2):
nums1,nums2 = nums2,nums1
for i in nums1:
if i not in m:
m[i] = 1
else:
m[i]+=1
result = []
for i in nums2:
if i in m and m[i]:
m[i]-=1
result.append(i)
return result
ob1 = Solution()
print(ob1.intersect([1,4,5,3,6], [2,3,5,7,9]))輸入
[1,4,5,3,6] [2,3,5,7,9]
輸出
[3,5]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP