41. 缺失的第一个正数

java 复制代码
class Solution {
    public int firstMissingPositive(int[] nums) {
        int n = nums.length;
        for(int i=0;i<n;i++){//确保1在0位置;2在1位置;3在2位置....
            while(nums[i]>=1 && nums[i]<=n && nums[i]!=i+1 && nums[i]!=nums[nums[i]-1]){
                swap(nums,i,nums[i]-1);
            }
        }
        for(int j=0;j<n;j++){
            if(nums[j]!=j+1){
                return j+1;
            }
        }
        return n+1;
    }
    public void swap(int[] nums,int i,int j){
        int temp = nums[i];
        nums[i] = nums[j];
        nums[j] = temp;
    }
}
java 复制代码
class Solution {
    public int firstMissingPositive(int[] nums) {
        Set<Integer> hash = new HashSet<>();
        int n = nums.length;
        for(int i=0;i<n;i++){
            hash.add(nums[i]);
        }
        for(int j=1;j<=n;j++){
            if(!hash.contains(j)){
                return j;
            }
        }
        return n+1;
    }

}
相关推荐
通信小呆呆5 小时前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
benben0446 小时前
强化学习之DQN算法族(基于gymnasium开发)
算法
小小工匠6 小时前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化
玖玥拾7 小时前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
何以解忧,唯有..7 小时前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
想吃火锅10058 小时前
【leetcode】88.合并两个有序数组js
算法
生成论实验室8 小时前
机器人:一个自主运动的系统
人工智能·算法·语言模型·机器人·自动驾驶·agi·安全架构
Qres8218 小时前
算法复键——树状数组
数据结构·算法
H178535090968 小时前
SolidWorks第四部分_直接实体建模特征9_替换面原理
线性代数·算法·机器学习·3d建模·solidworks