Python/bit_manipulation/missing_number.py
Manpreet Singh 3ecad36f92
fix: incorrect range detection in find_missing_number (#10361)
* Fix incorrect range detection in find_missing_number

* Support consecutive decreasing numbers

Added support for consecutive decreasing numbers in the find_missing_number function.

* Support unordered numbers
2023-10-15 00:45:44 -04:00

29 lines
633 B
Python

def find_missing_number(nums: list[int]) -> int:
"""
Finds the missing number in a list of consecutive integers.
Args:
nums: A list of integers.
Returns:
The missing number.
Example:
>>> find_missing_number([0, 1, 3, 4])
2
>>> find_missing_number([1, 3, 4, 5, 6])
2
>>> find_missing_number([6, 5, 4, 2, 1])
3
>>> find_missing_number([6, 1, 5, 3, 4])
2
"""
low = min(nums)
high = max(nums)
missing_number = high
for i in range(low, high):
missing_number ^= i ^ nums[i - low]
return missing_number