mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-27 23:11:09 +00:00
2531f8e221
* test: adding more tests to missing number algorithm * Update missing_number.py --------- Co-authored-by: Christian Clauss <cclauss@me.com>
41 lines
881 B
Python
41 lines
881 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([4, 3, 1, 0])
|
|
2
|
|
>>> find_missing_number([-4, -3, -1, 0])
|
|
-2
|
|
>>> find_missing_number([-2, 2, 1, 3, 0])
|
|
-1
|
|
>>> 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
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import doctest
|
|
|
|
doctest.testmod()
|