leetcode hot100 41.第一个缺失的正数 hard

暴力解法

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
相关推荐
Ricky111zzz1 天前
leetcode学python记录1
python·算法·leetcode·职场和发展
逆境不可逃2 天前
LeetCode 热题 100 之 230. 二叉搜索树中第 K 小的元素 199. 二叉树的右视图 114. 二叉树展开为链表
算法·leetcode·职场和发展
wfbcg2 天前
每日算法练习:LeetCode 15. 三数之和 ✅
算法·leetcode·职场和发展
y = xⁿ2 天前
【LeetCode Hot100】双指针:分离指针
算法·leetcode
6Hzlia2 天前
【Hot 100 刷题计划】 LeetCode 41. 缺失的第一个正数 | C++ 原地哈希题解
c++·leetcode·哈希算法
小肝一下2 天前
每日两道力扣,day6
数据结构·c++·算法·leetcode·双指针·hot100
人道领域2 天前
【LeetCode刷题日记】242.字母异位词
算法·leetcode·职场和发展
XWalnut2 天前
LeetCode刷题 day8
算法·leetcode·职场和发展
Ricky111zzz2 天前
leetcode学python记录2
python·算法·leetcode·职场和发展
会编程的土豆2 天前
【数据结构与算法】堆排序
开发语言·数据结构·c++·算法·leetcode