Подготовка к алгоритмическим задачам

Easy, medium или hard: задачи какой сложности решать перед собеседованием
Коротко
| Позиция | Что дают на собеседовании | Как распределить подготовку |
|---|---|---|
| Junior | easy, изредка лёгкий medium | 70% easy, 30% medium |
| Middle | medium, иногда два подряд | 20% easy, 70% medium, 10% hard |
| Senior | medium посложнее, редко hard | 10% easy, 70% medium, 20% hard |
Короткий ответ для тех, кто пришёл за ним: основной уровень — medium. На него приходится большинство задач для любой позиции выше стажёра.
Почему medium — это стандарт
Задача на собеседовании должна укладываться в 30–40 минут вместе с обсуждением, уточнением условия и написанием кода. Плюс интервьюеру нужно место для дополнительных вопросов.
Easy решается за 10 минут и почти ничего не показывает: справится и человек, который просто помнит решение.
Hard требует либо знания конкретного редкого приёма, либо часа времени. Провалить её может и сильный кандидат — просто потому что не сталкивался с этой техникой. Такой сигнал интервьюеру бесполезен.
Medium попадает в золотую середину: требует понимания паттерна, но решается за отведённое время. Именно поэтому большинство задач берут отсюда.
Что значит каждый уровень на практике
Easy
Одна структура данных, один очевидный приём, решение в 10–20 строк.
Примеры: найти дубликаты в массиве, проверить анаграмму, развернуть связный список, проверить корректность скобок.
Где встречается: телефонный скрининг, задача-разминка в начале очного этапа, собеседования на стажировку.
Не пропускайте этот уровень. Провалиться на лёгкой задаче из-за волнения обиднее и заметнее всего, а базовые паттерны закрепляются именно здесь.
Medium
Комбинация двух идей или неочевидный приём. Решение на 20–40 строк, нужно подумать перед тем, как писать.
Примеры: сумма трёх чисел, самая длинная подстрока без повторов, обход дерева по уровням, поиск в повёрнутом массиве, задачи на динамику средней сложности.
Где встречается: основной формат для позиций middle и senior.
Признак, что уровень освоен: вы видите медиум-задачу из знакомой темы и понимаете подход до того, как начали писать код.
Hard
Требует редкого приёма или сочетания нескольких: суффиксные структуры, продвинутая динамика, сложная геометрия, нестандартные оптимизации.
Примеры: минимальное окно-подстрока, медиана двух отсортированных массивов, задачи с деревьями отрезков.
Где встречается: топовые компании, соревновательное программирование, изредка — как последний вопрос сильному кандидату.
Реальность такая: на большинстве собеседований hard не дают вообще. Тратить на них половину подготовки — плохая инвестиция.
Решай алгоритмические задачи как профи

Распределение по позициям
Junior и стажировка
Основа — easy, плюс лёгкие medium к концу подготовки.
Что действительно спросят: массивы, строки, хеш-таблицы, простые операции со связными списками. Динамику почти наверняка не дадут, сложные графы тоже.
Приоритет: уверенность в базе важнее широты. Лучше твёрдо знать шесть тем, чем поверхностно четырнадцать.
Middle
Ядро подготовки — medium. Easy используются для разогрева и проверки, что база не забыта.
Что спросят: все базовые темы плюс деревья, графы, динамика начального уровня. Ожидается, что вы сразу назовёте сложность и предложите оптимизацию.
Отличие от джуна не в сложности задач, а в том, как быстро вы находите оптимальное решение и насколько внятно его объясняете.
Senior
Medium посложнее, иногда hard. Но здесь алгоритмическая секция обычно не главная — больше веса имеют системный дизайн и обсуждение опыта.
Что важнее: не столько решить задачу, сколько показать инженерное мышление — обсудить компромиссы, крайние случаи, влияние на производительность.
Сколько задач каждого уровня
Ориентир на подготовку в 2–3 месяца:
| Уровень | Количество | Зачем |
|---|---|---|
| Easy | 40–50 | закрепить базовые паттерны |
| Medium | 80–100 | основной формат собеседований |
| Hard | 10–20 | только если целитесь в топовые компании |
Сигнал, что пора переходить с easy на medium: вы решаете лёгкие задачи из знакомой темы за 10–15 минут без подсказок. Если каждая занимает полчаса — рано.
Обратный сигнал: если medium-задачи регулярно не поддаются даже после 40 минут, стоит вернуться к easy той же темы. Провал обычно означает, что базовый паттерн не закреплён, а не что задача слишком сложная.
Метки сложности врут
Полезно знать: деление на easy/medium/hard на LeetCode неточное.
Некоторые задачи помечены как easy, но требуют неочевидной идеи. Некоторые medium решаются механически, если знаешь приём. Метка отражает процент успешных решений, а не объективную сложность.
Практический вывод: не ориентируйтесь на метку как на истину. Ориентируйтесь на тему и на то, знаете ли вы соответствующий приём.
Частые ошибки
Прыжок сразу к hard. Кажется, что так подготовка эффективнее. На деле без базы hard-задачи только заучиваются, а на собеседовании дадут medium, которую вы не узнаете.
Игнорирование easy. «Это слишком просто» — и на скрининге человек не может за 15 минут написать разворот списка без ошибок.
Погоня за сложностью вместо скорости. На собеседовании важно не только решить, но и уложиться во время. Полезнее решить десять medium за 25 минут каждую, чем одну hard за два часа.
Оценка готовности по числу решённых задач. Правильная метрика — можете ли вы решить незнакомую medium из знакомой темы за 30 минут.
Что запомнить
- Основной уровень собеседований — medium, на него приходится большинство задач.
- Easy нужны для закрепления базы и встречаются на скрининге; пропускать их нельзя.
- Hard дают редко — вкладываться в них стоит только при подготовке в топовые компании.
- Распределение для мидла: примерно 20% easy, 70% medium, 10% hard.
- Метки сложности на LeetCode приблизительны; ориентируйтесь на тему, а не на ярлык.
