০ থেকে n পর্যন্ত সংখ্যার একটি লিস্ট দেওয়া থাকে, যার মধ্যে একটি সংখ্যা মিসিং। বাইনারি সার্চ ব্যবহার করে মিসিং নাম্বার দ্রুত খুঁজে বের করতে হবে। উদাহরণ: [0,1,2,3,4,5,7,8,9] → মিসিং ৬।
সমাধানের পদ্ধতি
- লিস্টটি সোর্ট করুন।
low = 0,high = len(nums)।while low < high:mid = low + (high - low) // 2।- যদি
nums[mid] > mid, তবেhigh = mid। - অন্যথায়
low = mid + 1।
lowরিটার্ন করুন (এটিই মিসিং নাম্বার)।
উদাহরণ কোড
class Solution(object):
def missingNumber(self, nums):
nums.sort()
high = len(nums)
low = 0
while low < high:
mid = low + (high - low) // 2
if nums[mid] > mid:
high = mid
else:
low = mid + 1
return low
ob1 = Solution()
print(ob1.missingNumber([5,3,1,7,8,0,9,2,4]))
ইনপুট
nums = [5,3,1,7,8,0,9,2,4]
আউটপুট
6