LeetCode热题100之缺失的第一个正数

题目:

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

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

本题思路:

1.数组长度为n的数组,缺失的数只能是在1,n+1。第一次遍历数组。使用置换的思想,把1,n的数值找到,放到下标i-1的位置。

2.第二次遍历数组,找到i下标上不等于i+1的数,就是第一个缺失的正数i+1。如果遍历完成之后没有找到,那缺失的数就是n+1。

java 复制代码
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;
    }
}
相关推荐
剑挑星河月21 小时前
54.螺旋矩阵
java·算法·leetcode·矩阵
Robot_Nav1 天前
MPPI 局部规划器实验设计讲解
人工智能·算法·mppi
mingo_敏1 天前
Mean-Teacher 均值教师自训练框架详解
算法·均值算法
星空露珠1 天前
迷你世界UGc3.0脚本Wiki[剧情动画模块管理接口 Timeline]
开发语言·数据结构·算法·游戏·lua
笨笨没好名字1 天前
Leetcode刷题python3版第一周(下)
linux·算法·leetcode
手写码匠1 天前
手写 LLM 安全护栏:从内容审核到越狱防御的完整实现
人工智能·深度学习·算法·aigc
luj_17681 天前
草酸与烟酸对消化及糖代谢的影响解析
服务器·c语言·开发语言·经验分享·算法
青风971 天前
16-ADAPTRACK:基于自适应阈值的多目标跟踪匹配算法
人工智能·算法·目标跟踪
汤姆yu1 天前
macOS系统下Aider完整安装、配置与实战使用教程
大数据·人工智能·算法·macos·github·copilot
Sam09271 天前
【AI 算法精讲 14】TF-IDF:词频与逆文档频率
人工智能·python·算法·ai