मान लीजिए कि हमारे पास दो सूचियां nums1 और nums2 हैं, वे सेंसर मेट्रिक्स का प्रतिनिधित्व कर रहे हैं। प्रत्येक सूची में अद्वितीय मान होते हैं, इसलिए a b. इन दो सूचियों में से एक में सटीक सेंसर मेट्रिक्स हैं लेकिन दूसरे में दोषपूर्ण है। दोषपूर्ण सूची में एक मान, जो कि अंतिम मान नहीं है, गिरा दिया गया था और उस सूची के अंत में एक गलत मान रखा गया था। हमें गिराए गए वास्तविक मूल्य को खोजना होगा।
इसलिए, यदि इनपुट nums1 =[5, 10, 15] nums2 =[10, 15, 8] जैसा है, तो आउटपुट 5 होगा, क्योंकि पहली सूची nums1 वास्तविक मान रखती है =[5, 10, 15], दूसरे एरे में, जिसे गिरा दिया जाता है और अंत में 8 डाला जाता है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- निम्न :=0
- उच्च :=
- अंकों का आकार1 - 1
- कम <उच्च होने पर,
- . करें
- मध्य :=तल (निम्न + उच्च) / 2
- यदि nums1[mid], nums2[mid] के समान है, तो
- निम्न :=मध्य + 1
- अन्यथा,
- उच्च :=मध्य
- nums1[low] लौटाएं यदि nums1[low + 1] nums2[low] के समान है अन्यथा nums2[low]
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(nums1, nums2): low, high = 0, len(nums1) - 1 while low < high: mid = (low + high) // 2 if nums1[mid] == nums2[mid]: low = mid + 1 else: high = mid return nums1[low] if nums1[low + 1] == nums2[low] else nums2[low] nums1 = [5, 10, 15] nums2 = [10, 15, 8] print(solve(nums1, nums2))
इनपुट
[5, 10, 15], [10, 15, 8]
आउटपुट
5