From 4cf3e48fb4fadd8051b5f56ef9134303dd0b2cc4 Mon Sep 17 00:00:00 2001 From: Manpreet Singh <63737630+ManpreetSingh2004@users.noreply.github.com> Date: Fri, 13 Oct 2023 16:35:48 +0530 Subject: [PATCH 1/3] Fix incorrect range detection in find_missing_number --- bit_manipulation/missing_number.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/bit_manipulation/missing_number.py b/bit_manipulation/missing_number.py index 92502a778ace..1dcb3ac4e8aa 100644 --- a/bit_manipulation/missing_number.py +++ b/bit_manipulation/missing_number.py @@ -11,11 +11,14 @@ def find_missing_number(nums: list[int]) -> int: Example: >>> find_missing_number([0, 1, 3, 4]) 2 + >>> find_missing_number([1, 3, 4, 5, 6]) + 2 """ - n = len(nums) - missing_number = n + low = nums[0] + high = nums[-1] + missing_number = high - for i in range(n): - missing_number ^= i ^ nums[i] + for i in range(low, high): + missing_number ^= i ^ nums[i - low] return missing_number From 0c2debc4c2cc5ea6e75b73dc6afdc32138af0411 Mon Sep 17 00:00:00 2001 From: Manpreet Singh <63737630+ManpreetSingh2004@users.noreply.github.com> Date: Fri, 13 Oct 2023 16:57:14 +0530 Subject: [PATCH 2/3] Support consecutive decreasing numbers Added support for consecutive decreasing numbers in the find_missing_number function. --- bit_manipulation/missing_number.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bit_manipulation/missing_number.py b/bit_manipulation/missing_number.py index 1dcb3ac4e8aa..881043265cd1 100644 --- a/bit_manipulation/missing_number.py +++ b/bit_manipulation/missing_number.py @@ -13,9 +13,11 @@ def find_missing_number(nums: list[int]) -> int: 2 >>> find_missing_number([1, 3, 4, 5, 6]) 2 + >>> find_missing_number([6, 5, 4, 2, 1]) + 3 """ - low = nums[0] - high = nums[-1] + low = min(nums[0], nums[-1]) + high = max(nums[0], nums[-1]) missing_number = high for i in range(low, high): From cda933f2c74be1f81497fcb3a8cdb27707bd3850 Mon Sep 17 00:00:00 2001 From: Manpreet Singh <63737630+ManpreetSingh2004@users.noreply.github.com> Date: Sat, 14 Oct 2023 15:51:17 +0530 Subject: [PATCH 3/3] Support unordered numbers --- bit_manipulation/missing_number.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bit_manipulation/missing_number.py b/bit_manipulation/missing_number.py index 881043265cd1..32b949daa717 100644 --- a/bit_manipulation/missing_number.py +++ b/bit_manipulation/missing_number.py @@ -15,9 +15,11 @@ def find_missing_number(nums: list[int]) -> int: 2 >>> find_missing_number([6, 5, 4, 2, 1]) 3 + >>> find_missing_number([6, 1, 5, 3, 4]) + 2 """ - low = min(nums[0], nums[-1]) - high = max(nums[0], nums[-1]) + low = min(nums) + high = max(nums) missing_number = high for i in range(low, high):