From a6d1f73246219721ea7c858ee12e213b52bea3d4 Mon Sep 17 00:00:00 2001 From: "M.Hitesh" <54840773+hiteshmadapathi@users.noreply.github.com> Date: Fri, 31 Dec 2021 02:51:17 -0500 Subject: [PATCH 1/4] Add files via upload --- Missing numbers.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 Missing numbers.py diff --git a/Missing numbers.py b/Missing numbers.py new file mode 100644 index 00000000..1b6876c0 --- /dev/null +++ b/Missing numbers.py @@ -0,0 +1,17 @@ +arr = [1,2,3,4,5,7,8] + +# Time Complexity: O(logn) +# Space Complexity: O(1) + +class solution: + + def missing_number(arr): + l = 0 + h = len(arr)-1 + while h-l>1: + mid = l + (h-l)//2 + if arr[mid] - arr[l] != mid - l: + h = mid + elif arr[h] - arr[mid] != h - mid: + l = mid + return (arr[l]+arr[h])//2 \ No newline at end of file From 84872998686eb16201481ba6dada91cf05b957e5 Mon Sep 17 00:00:00 2001 From: "M.Hitesh" <54840773+hiteshmadapathi@users.noreply.github.com> Date: Wed, 15 Apr 2026 16:48:56 -0700 Subject: [PATCH 2/4] Delete Missing numbers.py --- Missing numbers.py | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 Missing numbers.py diff --git a/Missing numbers.py b/Missing numbers.py deleted file mode 100644 index 1b6876c0..00000000 --- a/Missing numbers.py +++ /dev/null @@ -1,17 +0,0 @@ -arr = [1,2,3,4,5,7,8] - -# Time Complexity: O(logn) -# Space Complexity: O(1) - -class solution: - - def missing_number(arr): - l = 0 - h = len(arr)-1 - while h-l>1: - mid = l + (h-l)//2 - if arr[mid] - arr[l] != mid - l: - h = mid - elif arr[h] - arr[mid] != h - mid: - l = mid - return (arr[l]+arr[h])//2 \ No newline at end of file From 0b9056837182ac0407583356b4b3359dc88fb100 Mon Sep 17 00:00:00 2001 From: "M.Hitesh" <54840773+hiteshmadapathi@users.noreply.github.com> Date: Wed, 15 Apr 2026 16:53:38 -0700 Subject: [PATCH 3/4] Create MissingNumbers.py --- MissingNumbers.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 MissingNumbers.py diff --git a/MissingNumbers.py b/MissingNumbers.py new file mode 100644 index 00000000..9931c51c --- /dev/null +++ b/MissingNumbers.py @@ -0,0 +1,25 @@ +class Solution: + def missingNumber(self, arr): + # code here + n = len(arr)+1 + low = 0 + high = len(arr)-1 + + if arr[0]!=1: + return 1 + if arr[-1]!=n: + return n + + while low<=high: + mid = low + (high-low)//2 + if arr[mid+1]-arr[mid]>1: + return arr[mid]+1 + if arr[mid]-arr[mid-1]>1: + return arr[mid]-1 + if arr[high]-arr[mid] > high-mid: + low = mid + else: + high = mid + + + From 8c85d1d770cfab5ff81cd3c6495d0a870a557bf3 Mon Sep 17 00:00:00 2001 From: "M.Hitesh" <54840773+hiteshmadapathi@users.noreply.github.com> Date: Wed, 15 Apr 2026 16:56:55 -0700 Subject: [PATCH 4/4] Update MissingNumbers.py --- MissingNumbers.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/MissingNumbers.py b/MissingNumbers.py index 9931c51c..52108b5d 100644 --- a/MissingNumbers.py +++ b/MissingNumbers.py @@ -1,3 +1,8 @@ +# Time Complexity --> O(logN) +# Space Complexity --> O(1) +# Explanation --> Using a binary search, check if the difference between the middle number and any of its adjacent numbers is greater than 1 and if so then return the output accordingly. +# If the missing number not adjacent to middle index, go towards the half where the difference between high index and middle index is lower than the difference bewteen corresponding values. + class Solution: def missingNumber(self, arr): # code here