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
相关推荐
草履虫建模6 小时前
力扣算法 1768. 交替合并字符串
java·开发语言·算法·leetcode·职场和发展·idea·基础
VT.馒头10 小时前
【力扣】2721. 并行执行异步函数
前端·javascript·算法·leetcode·typescript
不穿格子的程序员14 小时前
从零开始写算法——普通数组篇:缺失的第一个正数
算法·leetcode·哈希算法
VT.馒头17 小时前
【力扣】2722. 根据 ID 合并两个数组
javascript·算法·leetcode·职场和发展·typescript
执着25917 小时前
力扣hot100 - 108、将有序数组转换为二叉搜索树
算法·leetcode·职场和发展
52Hz11818 小时前
力扣230.二叉搜索树中第k小的元素、199.二叉树的右视图、114.二叉树展开为链表
python·算法·leetcode
苦藤新鸡18 小时前
56.组合总数
数据结构·算法·leetcode
菜鸟233号18 小时前
力扣647 回文子串 java实现
java·数据结构·leetcode·动态规划
LiLiYuan.18 小时前
【Cursor 中找不到LeetCode 插件解决办法】
算法·leetcode·职场和发展
Charlie_lll18 小时前
力扣解题-[3379]转换数组
数据结构·后端·算法·leetcode