Подготовка к алгоритмическому собеседованию

Решить задачу — половина дела. Вторая половина — объяснить решение.

Задачи с реальных собеседований, редактор с тестами и разбор, который ведёт себя как интервьюер: спрашивает про сложность, крайние случаи и выбор структуры данных.

38
задач с разбором
Python, JS, Java
проверка на тестах
9 тем
паттерны, которые спрашивают
two_sum.pytests.py
тесты 2/2
Разбор · вопрос интервьюераO(n²)

Тесты прошли, но вы дважды ищете один и тот же элемент. На входе 10⁵ решение не уложится в лимит времени. Какая структура даёт поиск за O(1)?

Ответьте, как на собеседовании…Ответить
01 · Темы

Девять паттернов, на которых строится большинство задач

Все задачи по темам
01O(n)Массивы и ХешированиеПодсчёт, поиск пары, группировка за один проход.Дубликаты на расстоянии · Число без пары · Элемент большинства02O(n)Два указателяСходящиеся индексы вместо вложенного цикла.Перемещение нулей · Правильный палиндром · Сумма трёх чисел03O(n)Скользящее окноПодстроки и подмассивы с условием: расширяем и сжимаем границы.Лучшее время для покупки и продажи акций · Самая длинная подстрока без повторений · Замена повторяющихся символов04O(n)СтекСкобки, вычисление выражений, ближайший больший элемент.Обратная польская запись · Ожидание потепления · Валидные скобки05O(log n)Бинарный поискПоиск по массиву и по ответу на монотонной функции.Бинарный поиск · Минимум в повернутом массиве · Поиск в отсортированном повернутом массиве06O(2ⁿ)Поиск с возвратомПеребор комбинаций и перестановок с отсечением.Сумма комбинаций · Поиск слова07O(n)ДеревьяDFS и BFS, рекурсия, свойства BST.08O(n·k)Динамическое программированиеСостояние, переход, база. И восстановление ответа.Размен монет · Дом грабителя · Уникальные пути09O(n)Связный списокРазворот, быстрый и медленный указатели, слияние.Разворот односвязного списка · Объединение двух отсортированных списков · Обнаружение цикла в связном списке
02 · Как устроена задача

Не «правильно / неправильно», а разговор, как на интервью

Шаг 1

Решаете в браузере

Python, JavaScript или Java. Код запускается и проверяется на тестах, включая крайние случаи.

Шаг 2

Получаете разбор

Оценка сложности по времени и памяти, слабые места и вопрос, который задал бы интервьюер.

Шаг 3

Объясняете решение

Отвечаете на уточняющие вопросы и сравниваете своё решение с эталонным.

03 · Списки

Подборки под тип компании

Продуктовая компания, финтех или контест — у каждого формата свой набор типовых задач.

04 · Курс · 6 блоков

Решать задачи вы умеете. Объяснять — нет.

На собеседовании оценивают рассуждение вслух. В курсе каждое решение разбирают по критериям интервьюера: сложность, крайние случаи, обоснование выбора.

399 ₽1 490 ₽
Разовая оплата, доступ навсегда, без подписки
  1. 01Массивы и хеш-таблицы
  2. 02Два указателя и окно
  3. 03Деревья и графы
  4. 04Динамическое программирование
  5. 05Оценка сложности
  6. 06Разбор вслух

Начните с любой задачи. Разбор — сразу после первых тестов.

Открыть задачи
SprintCode - Платформа для подготовки к техническим собеседованиям