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;
    }
}
相关推荐
做怪小疯子19 分钟前
LeetCode 热题 100——双指针——三数之和
算法·leetcode·职场和发展
高山上有一只小老虎27 分钟前
等差数列前n项的和
java·算法
sin_hielo35 分钟前
leetcode 2536
数据结构·算法·leetcode
flashlight_hi41 分钟前
LeetCode 分类刷题:203. 移除链表元素
算法·leetcode·链表
py有趣41 分钟前
LeetCode算法学习之数组中的第K个最大元素
学习·算法·leetcode
吗~喽41 分钟前
【LeetCode】将 x 减到 0 的最小操作数
算法·leetcode
what_20181 小时前
list集合使用
数据结构·算法·list
hetao17338372 小时前
2025-11-13~14 hetao1733837的刷题记录
c++·算法
hansang_IR2 小时前
【题解】洛谷 P2476 [SCOI2008] 着色方案 [记搜]
c++·算法·记忆化搜索
趙卋傑2 小时前
常见排序算法
java·算法·排序算法