题目描述
给出一个包含 0, 1, 2, ..., n
中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。
案例 1
输入: [3,0,1]
输出: 2
案例 2
输入: [9,6,4,2,3,5,7,0,1]
输出: 8
注意事项: 您的算法应该以线性复杂度运行。你能否仅使用恒定的额外空间复杂度来实现它?
我的解法——求和相减(AC)
- 先算出本来应有的数字的和,再挨个减一遍,剩下的就是啦。
- 复杂度O(n),O(1)
class Solution(object):
def missingNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
length = len(nums)
sum = (length + 1) * length / 2
for i in range(length):
sum -= nums[i]
return sum