Я столкнулся с этим post, в котором сообщается о следующем интервью:
Учитывая два массива чисел, найдите, если каждый из двух массивов имеет тот же набор целых чисел? Предложите алгоритм, который может работать быстрее, чем NlogN без лишнего пространства?
Лучшее, что я могу придумать, следующее:
-
(a) сортировать каждый массив, а затем (b) иметь два указателя, перемещающихся вдоль двух массивов, и проверить, находятся ли вы разные значения... но шаг (a) уже имеет сложность NlogN: (
-
(a) сканируйте самый короткий массив и поместите значения в карту, а затем (b) сканируйте второй массив и проверьте, находите ли вы значение, которое отсутствует на карте... здесь мы имеем линейную сложность, но мы используем дополнительное пространство
... так что я не могу придумать решение для этого вопроса.
Идеи?
Спасибо за все ответы. Я чувствую, что многие из них правы, но я решил выбрать ruslik one, потому что он дает интересный вариант, о котором я не думал.