ধরুন আমাদের দুটি তালিকা আছে nums1 এবং nums2, তারা সেন্সর মেট্রিক্সের প্রতিনিধিত্ব করছে। প্রতিটি তালিকায় অনন্য মান রয়েছে, তাই একটি ≠ b. এই দুটি তালিকার একটিতে সঠিক সেন্সর মেট্রিক্স রয়েছে কিন্তু অন্যটিতে ত্রুটিপূর্ণ। ত্রুটিপূর্ণ তালিকায় একটি মান, যেটি শেষ মান নয় তা বাদ দেওয়া হয়েছিল এবং সেই তালিকার শেষে একটি ভুল মান স্থাপন করা হয়েছিল। আমাদের প্রকৃত মান খুঁজে বের করতে হবে যা বাদ দেওয়া হয়েছিল।
সুতরাং, যদি ইনপুটটি nums1 =[5, 10, 15] nums2 =[10, 15, 8] এর মত হয়, তাহলে আউটপুট হবে 5, যেমন প্রথম তালিকা সংখ্যা1 প্রকৃত মান ধারণ করে =[5, 10, 15], দ্বিতীয় অ্যারেতে, যা বাদ দেওয়া হয় এবং শেষে 8 ঢোকানো হয়।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- কম :=0
- উচ্চ :=
- সংখ্যা 1 - 1 এর আকার
- যখন কম <উচ্চ, কর
- মধ্য :=তল (নিম্ন + উচ্চ) / 2
- যদি nums1[mid] nums2[mid] এর মত হয়, তাহলে
- নিম্ন :=মধ্য + 1
- অন্যথায়,
- উচ্চ :=মধ্য
- সংখ্যা 1[নিম্ন] ফেরত দিন যদি 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