41. 缺失的第一个正数 --力扣 --JAVA

题目

给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。

请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。

解题思路

  1. 对数组进行排序,便于查看是否连续;
  2. 因为是最小正整数,所以判断值应从1开始;
  3. 只要当前元素值大于最小值,则直接返回最小值。

代码展示

java 复制代码
class Solution {
    public int firstMissingPositive(int[] nums) {
        Arrays.sort(nums);
        int min = 1;
        for (int i = 0; i < nums.length; i++){
            if(nums[i] > min){
                return min;
            }
            min = Math.max(nums[i] + 1, min);
        }
        return min;
    }
}
相关推荐
iAkuya4 分钟前
(leetcode)力扣100 54实现Trie树
算法·leetcode·c#
TracyCoder12320 分钟前
LeetCode Hot100(20/100)——19. 删除链表的倒数第 N 个结点
算法·leetcode
hrrrrb23 分钟前
【算法设计与分析】随机化算法
人工智能·python·算法
进击的小头30 分钟前
一阶IIR低通滤波器:从原理到嵌入式实战
c语言·算法
2301_8112329843 分钟前
C++中的契约编程
开发语言·c++·算法
2401_8290040244 分钟前
C++中的访问者模式
开发语言·c++·算法
青槿吖1 小时前
第二篇:JDBC进阶骚操作:防注入、事务回滚、连接池优化,一篇封神
java·开发语言·jvm·算法·自动化
sin_hielo1 小时前
leetcode 1984
数据结构·算法·leetcode
古城小栈1 小时前
开发常用 宏
算法·rust