268. Missing Number

题目描述

给出一个包含 0, 1, 2, ..., nn 个数的序列,找出 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