Python 中查詢重複陣列中丟失的元素
假設我們有兩個陣列,它們彼此重複,除了一個元素,因此,從給定的陣列中缺少一個元素,我們必須找到那個丟失的元素。
因此,如果輸入類似於 A = [2, 5, 6, 8, 10],B = [5, 6, 8, 10],則輸出將為 2,因為 2 在第二個陣列中丟失。
為了解決這個問題,我們將遵循以下步驟:
定義一個函式 solve()。這將接收 A、B、N
如果 N 等於 1,則
返回 A[0];
如果 A[0] 與 B[0] 不相同,則
返回 A[0]
low := 0, high := N - 1
當 low < high 時,執行
mid :=(low + high) / 2
如果 A[mid] 與 B[mid] 相同,則
low := mid
否則,
high := mid
如果 low 等於 high - 1,則
退出迴圈
返回 A[high]
從主方法中,執行以下操作:
M := A 的大小,N := B 的大小
如果 N 等於 M-1,則
返回 solve(A, B, M)
否則,當 M 等於 N-1 時,則
返回 solve(B, A, N)
否則,
返回“未找到”
示例
讓我們看看以下實現以獲得更好的理解:
def solve(A, B, N): if N == 1: return A[0]; if A[0] != B[0]: return A[0] low = 0 high = N - 1 while (low < high): mid = (low + high) / 2 if A[mid] == B[mid]: low = mid else: high = mid if low == high - 1: break return A[high] def get_missing_element(A, B): M = len(A) N = len(B) if N == M-1: return solve(A, B, M) elif M == N-1: return solve(B, A, N) else: return "Not found" A = [2, 5, 6, 8, 10] B = [5, 6, 8, 10] print(get_missing_element(A, B))
輸入
[2, 5, 6, 8, 10], [5, 6, 8, 10]
輸出
2
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP