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;
    }

}
相关推荐
王老师青少年编程几秒前
csp信奥赛C++之摩尔投票算法详解
数据结构·c++·算法·题解·csp·信奥赛·摩尔投票算法
Purple Coder9 分钟前
基于GNN的超导材料生长方法研究算法的实现-1
算法
tod11311 分钟前
C++ 核心知识点全解析(六)
c++·算法·面试经验
m0_5312371711 分钟前
C语言-编程实例
c语言·开发语言·数据结构
紫陌涵光13 分钟前
701. 二叉搜索树中的插入操作
算法·leetcode
tankeven15 分钟前
HJ100 等差数列
c++·算法
ADDDDDD_Trouvaille16 分钟前
2026.2.22——OJ98-100题
c++·算法
闻缺陷则喜何志丹20 分钟前
【差分数组】P9166 [省选联考 2023] 火车站|普及+
数据结构·c++·洛谷·差分数组
tankeven21 分钟前
HJ99 自守数
c++·算法
一只理智恩26 分钟前
基于 CesiumJS + React + Go 实现三维无人机编队实时巡航可视化系统
前端·人工智能·算法·golang·无人机