Я пытаюсь найти первые недостающие положительные целые числа в массиве, и я продолжаю получать это сообщение об ошибке. Я новичок в программировании, и я не могу понять причину этого. Может ли кто-нибудь помочь мне найти проблему? Кроме того, когда вход [1], он также генерирует исключение.Ошибка «Index was out of range exception»
Это мой код:
public static int solution(int[] A)
{
Array.Sort(A);
List<int> missing = new List<int>();
List<int> An = new List<int>();
foreach (var r in A)
{
if (r > 0)
{
An.Add(r);
}
}
int lengthList = (An[An.Count]) - (An[0]);
for (int i = An[0]; i <= lengthList - 1; i++)
{
if (An[i + 1] != An[i] + 1)
{
missing.Add(An[i] + 1);
An.Insert(i + 1, An[i] + 1);
}
}
if (missing != null)
{
return missing[0];
}
else
return 0;
}
Можете ли вы добавить также массив ввода? –
Что такое * недостающее положительное число *, пожалуйста? –
'(An [An.count])' следует изменить на '(An [An.count-1])'. Массивы основаны на нуле, но 'count' вернет количество элементов в' An', которое будет основано на – Aidin