1、问题描述
给定一个无序数组,求数组中缺失的第一个正整数。
示例1:
输入:[1,2,3,4]
输出:5
示例2:
输入:[-1, 2, 5, 3]
输出:1
示例3:
输入:[5,7,8,9]
输出:1
2、解题思路
分析:最小的正整数为1,所以可以查找数组,看1是否存在;如果存在,则看2是否存在于数组中;如果存在,再看3是否存在于数组中;一直循环下去,直到 i i i不存在于数组中,那么此时 i i i就是缺失的最小正整数。
那么,需要查找的正整数 i i i最大为多少呢?假设数组的长度为 l e n len len,那么
(1)如果 1 , 2 , . . . , l e n 1,2,...,len 1,2,...,len都出现在了数组中,那么最小的没有出现的最小正整数为 l e n + 1 len+1 len+1;
(2)如果 1 , 2