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;
    }
}
相关推荐
Reart24 分钟前
Leetcode 674.最长连续递增序列 (719)
后端·算法
Reart28 分钟前
Leetcode 300.最长递增子序列(719)
算法
可编程芯片开发32 分钟前
VSG虚拟同步发电机simulink建模与仿真
算法
en.en..34 分钟前
冒泡排序与选择排序完整对比解析
开发语言·数据结构·算法·c#·排序算法
兰令水39 分钟前
hot100【acm版】【2026.7.18打卡-java版本】
java·开发语言·算法
Reart1 小时前
Leetcode 714.买卖股票的最佳时机含手续费(719)
后端·算法
CoderYanger1 小时前
A.每日一题:3020. 子集中元素的最大数量
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
Jayden_Ruan1 小时前
C++组合的输出
c++·算法·深度优先
什巳2 小时前
JAVA练习312- 二叉搜索树中第 K 小的元素
java·数据结构·算法·leetcode
froyoisle2 小时前
CSP 真题解析:[CSP-J 2020-T3] 表达式
c++·算法·csp·信息学·信奥赛