Почему мы должны пытаться делать математику (специально решая квадратные уравнения), это дорогостоящие операции. Лучший способ решить эту проблему - создать битовую карту размером (n-3) битов, т.е. (n -3) +7 / 8 байтов. Лучше сделать calloc для этой памяти, поэтому каждый бит будет инициализирован в 0. Затем просмотрите список и установите конкретный бит на 1, если он встречается, если бит уже установлен на 1 для этого нет, то это повторное нет. Это может быть расширено, чтобы узнать, есть ли какие-либо пропущенные нет в массиве или нет. Это решение O (n) во временной сложности

твует массив размером n (числа от 0 до n - 3), и только 2 числа повторяются. Элементы размещаются в массиве случайным образом.

Например. в {2, 3, 6, 1, 5, 4, 0, 3, 5} n = 9, а повторные числа равны 3 и 5.

Как лучше всего найти повторяющиеся числа?

Постскриптум [Вы не должны использовать сортировку]

Ответы на вопрос(24)

Ваш ответ на вопрос