
暴力解法
nums.sort():对数组进行排序,时间复杂度为 O(n log n)
smallest_missing = 1:假设最小缺失的正整数是 1
时间复杂度:
排序的时间复杂度是 O(n log n)。
遍历数组的时间复杂度是 O(n)。
总体时间复杂度是 O(n log n),这是由排序操作主导的
空间复杂度:
O(1),因为我们只使用常数空间
python
class Solution:
def firstMissingPositive(self, nums: List[int]) -> int:
nums.sort() # 对数组进行排序
smallest_missing = 1 # 假设最小缺失的正整数是 1
for num in nums:
if num == smallest_missing: # 如果当前数字等于 smallest_missing,说明这个数字存在
smallest_missing += 1 # 更新 smallest_missing
elif num > smallest_missing: # 如果当前数字大于 smallest_missing,说明最小缺失数就是 smallest_missing
break
return smallest_missing