Этот вопрос очень похож на Как найти дублирующий элемент в массиве перемешанных последовательных целых чисел? , но имеет некоторые дополнительные требования.
У вас есть список последовательных целых чисел в произвольном порядке. Не гарантируется диапазон этих целых чисел или количество элементов в списке.
В этом списке отсутствует одно целое число и содержится копия другого целого числа.
Примером такого списка является {16, 12, 13, 17, 14, 13}; в этом случае отсутствующее целое число равно 15, а дублированное - 13 *. 1009 *
Каков наиболее эффективный по времени способ найти оба этих числа, принимая во внимание как маленькие, так и большие наборы данных? Есть ли какое-либо решение с лучшей временной сложностью, чем O (n log n), которое не душит небольшие наборы данных?