Given an array containing
n distinct numbers taken from
0, 1, 2, ..., n
, find the one that is missing from the array.
For example,
Given nums = [0, 1, 3]
return 2
.
Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?
class Solution(object):
def missingNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
"""
nums.sort()
n = sum(nums)
if nums[0] != 0:
return 0
elif nums[-1] != len(nums):
return len(nums)
else:
return nums[-1]*(len(nums) + 1)/2 - n
"""
max_num = max(nums)
if max_num != len(nums):
return len(nums)
return max_num*(len(nums) + 1)/2 - sum(nums)