Девять продвинутых тем, которые встречаются реже, но нужны
на сложных секциях: heap, trie, графы, Union-Find, битовые
операции и динамическое программирование
9 лекций + задачи из компанийMiddle+ / SeniorИндивидуально с ментором
Для кого этот курс
Вы готовитесь к собеседованиям, где встречаются Hard-задачи
Вы прошли базовый курс алгоритмов и хотите закрыть продвинутые темы
Вам нужны темы, которые встречаются реже базовых, но без них на сложной секции не обойтись
На входе предполагается материал курса «Алгоритмы. Основы»:
структуры данных, HashMap, два указателя, бинарный поиск,
рекурсия и деревья, включая BST.
Программа
Heap (куча)
Приоритетная очередь, top-K задачи
Операции с кучей: sift up / sift down, heapify за O(n)
Паттерн «два heap»: медиана из потока данных
Задачи: Kth Largest, Top K Frequent, Find Median from Data Stream
Trie
Префиксные деревья
Эффективное хранение строк и поиск слов
Autocomplete и задачи на префиксы
Матрицы
Rotation, spiral traversal
Представление в памяти, операции и поиск
Spiral Matrix, Set Matrix Zeroes, подготовка к графам
Графы: основы
BFS/DFS, компоненты связности
Представление графов: adjacency list / matrix
Обходы BFS и DFS, задачи на матрицах-графах
Number of Islands, Flood Fill
Графы: продвинутые
Кратчайшие пути, топосортировка
Дейкстра и Bellman-Ford
Топологическая сортировка, обнаружение циклов
Union-Find (DSU)
Система непересекающихся множеств
Сжатие путей и объединение по рангу
Задачи на связность
Битовые операции
Маски, сдвиги, XOR
AND, OR, XOR, сдвиги, флаги и маски
Оптимизации через битовые трюки
Динамическое программирование
Top-down / bottom-up
Состояния, переходы, memoization и tabulation
Классика: Climbing Stairs, LIS, 0/1 Knapsack
Продвинутый DP
Интервалы и битмаски
DP на интервалах и подпоследовательностях
DP по битовым маскам (bitmask DP)
Задачи из компаний
Реальные задачи с собеседований
Отдельные наборы задач по компаниям: Яндекс, Озон, Т-Банк, Авито
Разбор в формате интервью: уточнение условия, brute force, оптимизация
Как построено обучение
Темы выстроены по зависимостям: графовый блок идёт единым куском, битовые операции — перед продвинутым DP
Предполагается пройденный базовый курс «Алгоритмы. Основы»
Лекция по каждой теме; упражнения пока есть у трёх — матрицы, графы (BFS и DFS) и динамическое программирование
Отдельный блок с задачами из собеседований Яндекса, Озона, Т-Банка и Авито