Общая проблема интервью с определением недостающего значения в диапазоне от 1 до N была выполнена в тысячу раз. Вариации включают 2 недостающих значения до K недостающих значений.
Пример задачи: Диапазон [1,10] (1 2 4 5 7 8 9 10) = {3,6}
Вот пример различных решений:
Вопрос с легким собеседованием усложнился: данные номера 1..100, найдите недостающее число (ы)
Мой вопрос состоит в том, что, поскольку простой случай одного отсутствующего значения имеет сложность O (n) и сложность более крупных случаев сходится примерно на чем-то большее, чем O (nlogn):
Не может ли быть проще ответить на вопрос, сказав sort (mergesort) диапазон и повторить его, наблюдая за отсутствующими элементами?
Это решение должно занимать не более O (nlogn) и способно решить проблему для диапазонов, отличных от 1-к-N, таких как от 10 до 1000 или от -100 до +100 и т.д.
Есть ли основания полагать, что данные решения в вышеупомянутой SO-ссылке будут лучше, чем решение на основе сортировки для большего количества отсутствующих значений?
Примечание. Кажется, что многие общие решения этой проблемы, предполагают единственный теоретико-численный подход. Если кто-то задает такой вопрос в интервью S/E, не разумно будет использовать более компьютерный научный/алгоритмический подход, предполагая, что подход соответствует теоретико-множественной сложности решения...
Дополнительные ссылки: