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

}
相关推荐
Young_Zn_Cu23 分钟前
LeetCode刷题记录(持续更新中)
算法·leetcode
天选之女wow28 分钟前
【代码随想录算法训练营——Day31】贪心算法——56.合并区间、738.单调递增的数字、968.监控二叉树
算法·leetcode·贪心算法
lixinnnn.32 分钟前
贪心:火烧赤壁
数据结构·c++·算法
小小前端_我自坚强35 分钟前
前端算法相关详解
前端·算法
前端 贾公子1 小时前
《Vuejs设计与实现》第 5 章(非原始值响应式方案)下 Set 和 Map 的响应式代理
数据结构·算法
快乐是一切1 小时前
PDF底层格式之水印解析与去除机制分析
前端·数据结构
MHJ_2 小时前
Multi-Metric Integration(多指标集成)
数据结构
WWZZ20252 小时前
ORB_SLAM2原理及代码解析:SetPose() 函数
人工智能·opencv·算法·计算机视觉·机器人·自动驾驶
小马学嵌入式~3 小时前
堆排序原理与实现详解
开发语言·数据结构·学习·算法
青岛少儿编程-王老师3 小时前
CCF编程能力等级认证GESP—C++6级—20250927
java·c++·算法