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;
    }
}
相关推荐
Brilliantwxx2 分钟前
【C++】认识vector(概念+题目OJ)
开发语言·c++·笔记·算法
m0_629494736 分钟前
LeetCode 热题 100-----18.矩阵置零
数据结构·leetcode·矩阵
生成论实验室23 分钟前
《事件关系阴阳博弈动力学:识势应势之道》第十篇:识势应势——从认知到行动的完整闭环
人工智能·算法·架构·创业创新·安全架构
risc12345626 分钟前
SegmentTermsEnum#postings 和 IntersectTermsEnum#postings
算法·lucene
阿Y加油吧28 分钟前
二刷 LeetCode:两道经典贪心题复盘
算法·leetcode·职场和发展
顺顺 尼29 分钟前
程序地址空间和进程的一些操作
算法
Java成神之路-31 分钟前
【LeetCode 刷题笔记】35. 搜索插入位置 | 二分查找经典入门题
算法·leetcode
SunnyByte34 分钟前
数据结构——算法效率
数据结构
MediaTea11 小时前
AI 术语通俗词典:C4.5 算法
人工智能·算法
Navigator_Z11 小时前
LeetCode //C - 1033. Moving Stones Until Consecutive
c语言·算法·leetcode