Leetcode 268. Missing Number

Question

Solution1

直接遍历表来比较是否缺失,注意用元组比列表快。

1
2
3
4
5
6
7
class Solution:
def missingNumber(self, nums: List[int]) -> int:
nums = set(nums)
for i in range(0, len(nums)):
if i not in nums:
return i
return len(nums)

Solution2

考虑到除了中间的某个数,其他数是连续的,考虑用求和公式来计算全数列的和,和当前缺失数列进行比较。

1
2
3
4
class Solution:
def missingNumber(self, nums: List[int]) -> int:
n = len(nums)
return n*(n+1)//2 - sum(nums)