В последнее время я довольно часто хожу на собеседования.
Каждая первая, плюс-минус крупная компания (MAANG, Сбер, Т-банк, Яндекс и тд), имеет хотя бы один этап, содержащий алгоритмические задачи (в простонародье - литкод или алгосы). Этот этап по праву считается самым нелюбимым у кандидатов, но в то же время он, на мой взгляд, самый простой и понятный по процессу подготовки к нему. Как писал Yorko на своем канале, сейчас чаще спрашивают только easy задачи и редко middle. Регулярно решая задачи, постепенно начинаешь понимать закономерности, и становится легче. Количество решенных задач фиксируется в статистике сайта, и появляется ясное понимание прогресса подготовки. В отличие от той же теории МЛ, где читаешь и пытаешься вспомнить все подряд, от чего в голове может начаться каша.
Хочу поделиться с вами, как готовиться к этим алгоритмам.
Как в целом подходить к этим задачам:
1. Сначала внимательно прочитайте условие, попытайтесь понять, что от вас хотят и в каком виде.
2. Затем попытайтесь решить задачу самостоятельно. Всегда стоит начать с самого простого метода — перебора, пусть даже это будут 4 вложенных цикла.
3. Затем попытайтесь сделать что-то более оптимальное. Подумайте, какие структуры данных или алгоритмы можно применить к этой задаче.
4. На этом этапе уже можно найти и посмотреть видео с разбором решения. Как только там объяснили алгоритм на словах/картинках, попытайтесь снова зайти в редактор и реализовать то, что вам объяснили словами. Если совсем не получается, досмотрите видео и по памяти реализуйте только что увиденный код.
Ресурсы:
1. Как ни странно — LeetCode. Заходите в планы обучения — Study Plan, выбирайте тот, который нравится, и вперёд.
2. Также очень хорош NeetCode и его roadmap.
3. Мне нравятся стримы, где люди решают задачи в режиме онлайн. Можно наблюдать, как они думают и какие ошибки делают. Вот хороший пример такого видео: https://www.youtube.com/watch?v=Pp84Sv041xA (Глеб привет!)
upd: Еще хороший пост про с материалам про алгосы от @asisakov - https://t.me/asisakov_channel/141
Понимаю, что это далеко неисчерпывающий список, а если вы еще и не торопитесь и у вас есть несколько месяцев на подготовку, можно найти какой нибудь курс по алгоритмам (например лекции Хирьянова Т. на ютубе или купить на том же литкоде) чтобы более систематично и последовательно все это изучить, а не прыгать в омут с головой.
И помните, не везде просят алгосы на собеседованиях, но если вы не хотите отбрасывать все компании, где их все же просят, то придется заморочиться…