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;
    }
}
相关推荐
历程里程碑1 分钟前
子串-----和为 K 的子数组
java·数据结构·c++·python·算法·leetcode·tornado
一起养小猫2 分钟前
Flutter for OpenHarmony 进阶:表达式解析算法与计算器核心实现
算法·flutter·harmonyos
池央8 分钟前
贪心-最长递增子序列
算法·贪心算法
We་ct13 分钟前
LeetCode 383. 赎金信:解题思路+代码解析+优化实战
前端·算法·leetcode·typescript
liu****15 分钟前
Qt进阶实战:事件处理、文件操作、多线程与网络编程全解析
开发语言·网络·数据结构·c++·qt
不懒不懒24 分钟前
【逻辑回归从原理到实战:正则化、参数调优与过拟合处理】
人工智能·算法·机器学习
一只大袋鼠24 分钟前
分布式 ID 生成:雪花算法原理、实现与 MyBatis-Plus 实战
分布式·算法·mybatis
tobias.b27 分钟前
408真题解析-2010-27-操作系统-同步互斥/Peterson算法
算法·计算机考研·408真题解析
寄存器漫游者36 分钟前
数据结构 二叉树核心概念与特性
数据结构·算法
m0_7066532339 分钟前
跨语言调用C++接口
开发语言·c++·算法