मान लीजिए कि हमारे पास 0 से n तक की संख्याओं की एक सूची है। एक नंबर है जो गायब है। हमें लापता संख्या को एक कुशल दृष्टिकोण में खोजना होगा। अतः यदि A =[0, 1, 2, 3, 4, 5, 7, 8, 9], तो लुप्त संख्या 6 है।
इसे हल करने के लिए, हम द्विआधारी खोज दृष्टिकोण का उपयोग करेंगे।
- सूची को आरोही क्रम में क्रमबद्ध करें
- उच्च =ए की लंबाई, और निम्न =0
- कम <उच्च होने पर,
- . करें
- मध्य =निम्न + (उच्च - निम्न)/2
- अगर ए[मध्य]> मध्य
- उच्च =मध्य
- अन्यथा
- निम्न =मध्य + 1
- कम वापसी
उदाहरण
आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -
class Solution(object): def missingNumber(self, nums): """ :type nums: List[int] :rtype: int """ 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