Two Sum — задача, которая часто попадается на техническом собеседовании. Выглядит она очень просто, но именно на ней удобно показать, как думать об оптимизации: от решения «в лоб» до элегантного варианта через map.
Я разобрал её на Go целиком и оформил в PDF, чтобы можно было сохранить разбор (при желании распечатать) и вернуться к нему в любой момент, не листая ленту блога.
Это первая задача из списка Leetcode, которую я разбираю на Go — дальше будут следующие, разного уровня сложности.
Что внутри:
- Условие задачи и три примера с разбором.
- Наивное решение через два вложенных цикла — с трассировкой каждого шага.
- Оптимальное решение через map — тоже с трассировкой, чтобы видеть, что происходит на каждой итерации.
- Разбор временной и пространственной сложности для обоих подходов.
- Готовый рабочий код на Go, который можно сразу вставить в свой проект или тренажёр.
Расскажите в комментариях: какой подход вы бы выбрали первым на собеседовании — и приходилось ли вам решать что-то похожее на реальном интервью?