Leetcode 面试题 17.04.消失的数字
1 题目描述(Leetcode题目链接)
数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?
输入:[3,0,1]
输出:2
输入:[9,6,4,2,3,5,7,0,1]
输出:8
2 题解
数学方法,前n项和减去nums总和就是缺的那个数字
class Solution:
def missingNumber(self, nums: List[int]) -> int:
return len(nums)*(len(nums)+1)//2 - sum(nums)
位运算,相同的两个数字异或的结果得0。
class Solution:
def missingNumber(self, nums: List[int]) -> int:
s = len(nums)
for i in range(len(nums)):
s ^= i
s ^= nums[i]
return s