【LC】41. 缺失的第一个正数

题目描述:

给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。

请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。

示例 1:

复制代码
输入:nums = [1,2,0]
输出:3
解释:范围 [1,2] 中的数字都在数组中。

示例 2:

复制代码
输入:nums = [3,4,-1,1]
输出:2
解释:1 在数组中,但 2 没有。

示例 3:

复制代码
输入:nums = [7,8,9,11,12]
输出:1
解释:最小的正数 1 没有出现。

题解:

复制代码
class Solution {
    public int firstMissingPositive(int[] nums) {
        int n = nums.length;
        for (int i = 0; i < n; ++i) {
            while (nums[i] > 0 && nums[i] <= n && nums[nums[i] - 1] != nums[i]) {
                int temp = nums[nums[i] - 1];
                nums[nums[i] - 1] = nums[i];
                nums[i] = temp;
            }
        }
        for (int i = 0; i < n; ++i) {
            if (nums[i] != i + 1) {
                return i + 1;
            }
        }
        return n + 1;
    }
}
相关推荐
没有bug.的程序员22 分钟前
高频IO服务优化实战指南
java·jvm·spring·容器
通往曙光的路上23 分钟前
授权vvvvvv
java·开发语言·windows
Data_agent24 分钟前
京东商品视频API,Python请求示例
java·开发语言·爬虫·python
a努力。28 分钟前
HSBC Java面试被问:CAS如何解决ABA问题
java·开发语言·面试
灰灰勇闯IT42 分钟前
【探索实战】Kurator多集群统一应用分发实战:从环境搭建到业务落地全流程
算法
lang201509281 小时前
深入解析Java资源加载机制
java·开发语言·python
鱼在树上飞1 小时前
乘积最大子数组
算法
H_z___1 小时前
Codeforces Round 1070 (Div. 2) A~D F
数据结构·算法
爱笑的眼睛111 小时前
自动机器学习组件的深度解析:超越AutoML框架的底层架构
java·人工智能·python·ai
自学小白菜1 小时前
每周刷题 - 第三周 - 双指针专题 - 02
python·算法·leetcode