मान लीजिए कि हमारे पास n अद्वितीय संख्याओं की एक सरणी A है, ये n तत्व सरणी में आरोही क्रम में मौजूद हैं, लेकिन एक गायब तत्व है। हमें लुप्त तत्व को खोजना है।
इसलिए, यदि इनपुट A =[1, 2, 3, 4, 5, 6, 7, 9] जैसा है, तो आउटपुट 8 होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
n :=A का आकार
-
बायां :=0
-
दाएं:=n - 1
-
मध्य:=0
-
जबकि दाएँ> बाएँ , करें
-
मध्य:=बाएँ + (दाएँ - बाएँ) / 2
-
यदि A[मध्य] - मध्य A[0] के समान है, तो
-
अगर ए [मध्य + 1] - ए [मध्य]> 1, तो
-
वापसी A[मध्य] + 1
-
-
अन्यथा,
-
बायां :=मध्य + 1
-
-
-
अन्यथा,
-
अगर ए [मध्य] - ए [मध्य -1]> 1, तो
-
वापसी ए[मध्य] - 1
-
-
अन्यथा,
-
दाएं:=मध्य - 1
-
-
-
-
वापसी -1
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def search_missing_item(A): n = len(A) left, right = 0, n - 1 mid = 0 while (right > left): mid = left + (right - left) // 2 if (A[mid] - mid == A[0]): if (A[mid + 1] - A[mid] > 1): return A[mid] + 1 else: left = mid + 1 else: if (A[mid] - A[mid - 1] > 1): return A[mid] - 1 else: right = mid - 1 return -1 A = [1, 2, 3, 4, 5, 6, 7, 9] print(search_missing_item(A))
इनपुट
[1, 2, 3, 4, 5, 6, 7, 9]
आउटपुट
8