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

}
相关推荐
WHS-_-20221 小时前
Python 算法题学习笔记一
python·学习·算法
是苏浙1 小时前
初识集合框架
java·数据结构
沉鱼.441 小时前
第六届题目
算法
黑眼圈子1 小时前
总结一下用Java做算法的常用类和方法
java·开发语言·算法
apcipot_rain1 小时前
天梯赛练习集 时间规划 限时复盘 中档题详解(L1-6~L2-4)
算法
再卷也是菜2 小时前
第一章、线性代数(2)高斯消元法
线性代数·算法
NAGNIP2 小时前
一文搞懂CNN经典架构-EfficientNet!
算法·面试
如何原谅奋力过但无声2 小时前
【chap11-动态规划(上 - 基础题目&背包问题)】用Python3刷《代码随想录》
数据结构·python·算法·动态规划
小宇的天下2 小时前
Calibre LVS Circuit Comparison(2)
算法·lvs
迈巴赫车主3 小时前
求最大公约数-欧几里得算法(辗转相除法)
算法·最大公约数