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
相关推荐
We་ct10 小时前
LeetCode 148. 排序链表:归并排序详解
前端·数据结构·算法·leetcode·链表·typescript·排序算法
x_xbx12 小时前
LeetCode:2. 两数相加
算法·leetcode·职场和发展
_日拱一卒13 小时前
LeetCode:最长连续序列
算法·leetcode·职场和发展
重生之后端学习13 小时前
287. 寻找重复数
数据结构·算法·leetcode·深度优先·图论
实心儿儿14 小时前
算法7:两个数组的交集
算法·leetcode·职场和发展
sheeta199815 小时前
LeetCode 每日一题笔记 日期:2025.03.19 题目:3212.统计X和Y频数相等的子矩阵数量
笔记·leetcode·矩阵
Storynone15 小时前
【Day28】LeetCode:509. 斐波那契数,70. 爬楼梯,746. 使用最小花费爬楼梯
python·算法·leetcode
博风16 小时前
算法:双指针解:盛最多水的容器
算法·leetcode
阿Y加油吧17 小时前
力扣打卡day05——找到字符串中所有字母异位词、和为K的子数组
leetcode
abant217 小时前
leetcode912 排序算法总结
算法·leetcode·排序算法