Оцените решение Two Sum с двумя указателями: отсортировать массив, двигать указатели с концов, сдвигать правый при слишком большой сумме и левый в противном случае. Какие у него ограничения и сложности?

Для отсортированного массива два указателя находят пару за O(n), но предварительная сортировка обычно даёт итог O(n log n). Если нужны исходные индексы, их необходимо сохранить до сортировки.

Короткий ответ

Что ответить на собеседовании

Для отсортированного массива два указателя находят пару за O(n), но предварительная сортировка обычно даёт итог O(n log n). Если нужны исходные индексы, их необходимо сохранить до сортировки.

Подробный разбор

Ответ с пояснениями

Для отсортированного массива два указателя находят пару за O(n), но предварительная сортировка обычно даёт итог O(n log n). Если нужны исходные индексы, их необходимо сохранить до сортировки.

При сумме выше цели уменьшают правый указатель, иначе увеличивают левый: порядок значений позволяет исключать заведомо неподходящие пары. Условие left < right запрещает использовать один элемент дважды. Сортировка меняет порядок входа либо требует копии; пары (value, original_index) добавляют память. Хеш-таблица даёт альтернативу со средним O(n) временем и O(n) памятью. Для всех пар с повторами потребуется отдельная обработка дубликатов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее