, @Kevin, . : .Count, .FirstOrDefault .Contains. IEnumerable<int> , .Select, 2 , . , . , { 1, 1000000 }, , .
LINQ . . , . , , 1 , 1 :
public static int? FirstMissing(this IEnumerable<int> numbers)
{
int? priorNumber = null;
foreach(var number in numbers.OrderBy(n => n))
{
var difference = number - priorNumber;
if(difference != null && difference > 1)
{
return priorNumber + 1;
}
priorNumber = number;
}
return priorNumber == null ? (int?) null : priorNumber + 1;
}
, . . , priorNumber , , difference null. , , 1. , , , 1 .
return 0 1 , ; null n + 1 { n }.