1、原数组排序后查找
class Solution:
def missingNumber(self, nums: List[int]) -> int:
# 排序 O(nlogn)
n = len(nums)
nums = sorted(nums)
for i in range(0,n):
if nums[i] != i:
return i
return n
2、求和相减 (1-10中给9个数,如何快速找出缺哪个数)
class Solution:
def missingNumber(self, nums: List[int]) -> int:
# 求和相减 O(n)
n = len(nums)
sum_nums = sum(nums)
sum_n = sum([ i for i in range(n+1)])
return sum_n - sum_nums
3、异或位运算
class Solution:
def missingNumber(self, nums: List[int]) -> int:
# 求和相减 O(n)
n = len(nums)
for i,num in enumerate(nums):
n ^= i^num
return n