代码仓库:Github | Leetcode solutions @doubleZ0108 from Peking University.
- 解法1(T45% S22%):排序,遍历数组序号,如果数组元素不等于序号则返回当前位置,最终如果还没返回则返回数组长度
- 解法2(T95% S73%):等差数列求和,一次遍历,常数空间
( 0 + n ) ∗ ( n − 1 ) 2 − s u m ( n u m s ) \frac{(0 + n) * (n-1)}{2} - sum(nums) 2(0+n)∗(n−1)−sum(nums)
class Solution:
# 解法2
def missingNumber(self, nums: List[int]) -> int:
return (0+len(nums))*(len(nums)+1)//2 - sum(nums)
# 解法1
def missingNumber1(self, nums: List[int]) -> int:
nums.sort()
for i in range(len(nums)):
if nums[i] != i:
return i
return len(nums)
文章提供了两种方法来解决LeetCode上的一个问题。方法一是通过排序数组并遍历找到第一个不匹配序号的元素;方法二是利用等差数列求和公式直接计算缺失的数字。类Solution中包含了这两种解法的实现。
163

被折叠的 条评论
为什么被折叠?



