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;
    }
}
相关推荐
小七在进步10 小时前
类和对象(一)
java·数据结构·算法
Y_Bk10 小时前
2026 ICPC EC网络预选赛第一场
算法
CarIise11 小时前
C语言字符串基础:从char数组到双指针反转算法
算法
佳児素花痴╮11 小时前
C++速通2
开发语言·c++·算法
麻瓜code11 小时前
【LeetCode】相交链表:双指针法,一次遍历找到交点
算法·leetcode·链表
charlie11451419111 小时前
浅谈C++的列表初始化std::initializer_list
开发语言·数据结构·c++·list·开源项目
zander25811 小时前
LeetCode 5. 最长回文子串
算法
hanlin0312 小时前
刷题笔记:力扣第84题-柱状图中最大的矩形
笔记·算法·leetcode
青少儿编程课堂13 小时前
威佐夫博弈(双堆取子游戏)解析
c++·python·算法·bfs·信息学竞赛
一个初入编程的小白15 小时前
数据结构:二叉树链式结构的实现
数据结构