Я изучаю C# и пытаюсь решить задачу, в которой мне нужно найти первое повторяющееся число в массиве. Например, если массив имеет вид { 1, 2, 3, 4, 2, 5 , ответом должно быть 2, поскольку это первое число, которое появляется более одного раза.
Вот мой текущий подход:
Код: Выделить всё
int[] numbers = { 1, 2, 3, 4, 2, 5 };
int duplicate = -1;
for (int i = 0; i < numbers.Length; i++)
{
for (int j = i + 1; j < numbers.Length; j++)
{
if (numbers[i] == numbers[j])
{
duplicate = numbers[i];
break;
}
}
if (duplicate != -1) break;
}
Console.WriteLine(duplicate);
Это работает, но кажется медленным. Есть ли лучший способ решить эту проблему, особенно для больших массивов? Я слышал об использовании HashSet, но не знаю, как его реализовать.
Подробнее здесь:
https://stackoverflow.com/questions/792 ... array-in-c