CodeACM
HOT 100 · 普通数组 · LC 41

缺失的第一个正数:ACM 模式刷题

按标准输入读取测试数据,输出结果后可在 CodeACM 在线运行和提交。

题目描述

给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。

请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。

输入格式

第一行输入整数 n。

第二行输入 n 个整数 nums[i]。

输出格式

输出一个正整数,表示数组中缺失的最小正整数。

数据范围

  • 1 ≤ n ≤ 10⁵
  • −2³¹ ≤ nums[i] ≤ 2³¹ − 1

公开样例

样例 1

输入

3
1 2 0

输出

3

正整数 1 和 2 已出现,最小缺失值为 3。

样例 2

输入

4
3 4 -1 1

输出

2

1 在数组中,但 2 不在,因此缺失的最小正整数是 2。

练习建议

先根据输入输出格式写出可运行程序,再用公开样例检查结果;遇到边界情况时,补充自测用例后提交。