मान लीजिए कि हमारे पास दो सरणियाँ हैं जो एक तत्व को छोड़कर एक दूसरे के डुप्लिकेट हैं, इसलिए, दिए गए सरणी में से एक तत्व गायब है, हमें उस लापता तत्व को ढूंढना होगा।
इसलिए, यदि इनपुट ए =[2, 5, 6, 8, 10], बी =[5, 6, 8, 10] जैसा है, तो आउटपुट 2 होगा क्योंकि दूसरी सरणी से 2 गायब है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
फ़ंक्शन को हल करें () परिभाषित करें। इसमें ए, बी, एन लगेगा
-
अगर N 1 के समान है, तो
-
वापसी ए[0];
-
-
अगर A[0], B[0] के समान नहीं है, तो
-
वापसी ए[0]
-
-
निम्न :=0, उच्च :=N - 1
-
जबकि कम <उच्च, करें
-
मध्य:=(निम्न + उच्च)/2
-
अगर ए [मध्य] बी [मध्य] के समान है, तो
-
कम :=मध्य
-
-
अन्यथा,
-
उच्च :=मध्य
-
-
यदि निम्न उच्च -1 के समान है, तो
-
लूप से बाहर आएं
-
-
-
वापसी A[उच्च]
-
मुख्य विधि से, निम्न कार्य करें -
-
M:=A का आकार, N:=B का आकार
-
यदि N, M-1 के समान है, तो
-
वापसी हल (ए, बी, एम)
-
-
अन्यथा जब M, N-1 के समान हो, तब
-
वापसी हल (बी, ए, एन)
-
-
अन्यथा,
-
वापसी "नहीं मिला"
-
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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