Найти два повторяющихся числа в массиве - C#

Формулировка задачи:

1)У вас имеется массив, содержащий целые числа от 1 до 100, причем одно из них дублируется. Найдите индексы, указывающие на эти два числа. 2)у вас имеется набор чисел от 1 до 100, причем одно из них дублируется. Как определить это число? Пожалуйста помогите,не знаю как это реализовать

Код к задаче: «Найти два повторяющихся числа в массиве - C#»

textual
using System;
 
class Program
{
    public static void Main()
    {
        int[] arr = { 2, 16 ,3 ,37 ,66 ,5 ,66, 7, 55, 100, 11, 22, 8, 25 };
        int?[] idx = new int?[101];
        Tuple<int, int> t = null;
        for (int i = 0; i < arr.Length; ++i)
        {
            if (idx[arr[i]].HasValue)
            {
                t = Tuple.Create(idx[arr[i]].Value, i);
                break;
            }
            idx[arr[i]] = i;
        }
        Console.WriteLine(t == null ? "Нет такого числа" : $"{t} = {arr[t.Item1]}");
    }
}

14   голосов, оценка 4.286 из 5


СОХРАНИТЬ ССЫЛКУ