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;
    }
}
相关推荐
元Y亨H2 小时前
开发者必须掌握的十大核心算法
算法
元Y亨H2 小时前
深度解构:数据结构与算法的理论基石与工程演进
数据结构·算法
元Y亨H2 小时前
数据结构与算法的通俗指南
数据结构·算法
2301_764441332 小时前
用动力学系统(微分方程)为 Kernberg 的客体关系单元提供数学化的操作定义,把“自体—客体“这对心理结构建模成一个二维耦合系统
数据结构·python·算法·数学建模
林泽毅2 小时前
PyTRIO快速入门(二):Datum构建
人工智能·算法·产品
keep intensify2 小时前
最长有效括号
算法·leetcode·动态规划
CoderYanger3 小时前
A.每日一题:1979. 找出数组的最大公约数
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
猫头虎3 小时前
什么是ZCode for GLM-5.2?
开发语言·人工智能·python·科技·算法·ai编程·ai写作
长不胖的路人甲4 小时前
什么是赫夫曼树(哈夫曼树 / Huffman Tree)
python·算法·霍夫曼树
Warren2Lynch4 小时前
掌握 UML 构造型、标记定义与标记值:面向领域特定建模的 UML 扩展全面指南
大数据·算法·uml