Зависимости вместо случайного порядка

Карта знаний

Семь смысловых областей показывают форму учебного маршрута. Точные зависимости не спрятаны: они открываются вместе с описанием выбранного этапа.

Семь областей · один маршрут

Сначала найдите область, затем разберите точные связи

Обзор показывает смысловую структуру курса без паутины линий. Выберите этап — в описании появятся его реальные зависимости, уроки и практика.

Завершено
0 / 21 этапов
Следующий шаг
Как думать о задачах
  • Нужны зависимости
  • Можно начать
  • В процессе
  • Завершён

Область 01

Основа

Сформировать способ рассуждения и рабочий набор языка.

Область 02

Массивы и последовательности

Научиться поддерживать состояние линейного фрагмента.

Область 03

Порядок и линейные структуры

Использовать порядок данных и ограничения интерфейса.

Область 04

Деревья и приоритет

Работать с иерархией и текущим экстремумом.

Область 05

Перебор, графы и выбор

Исследовать пространство решений и доказывать выбор.

Область 06

Состояния и специальные структуры

Строить переходы и выбирать специализированное представление.

Область 07

Синтез

Распознавать форму новой задачи и объяснять решение.

Область 01

Основа

Сформировать способ рассуждения и рабочий набор языка.
  1. Этап 00 · 3 урокаКак думать о задачахМожно начатьСледующий

    Ограничения, сложность, перебор, инварианты и тестирование.

    Опирается на
    старт курса
    Открывает
    01 · Инструменты языка; 08 · Бинарный поиск; 14 · Жадные алгоритмы; 15 · Основы динамического программирования; 18 · Битовые операции
    Открыть этап в курсе

    Уроки этапа

    1. s00-l01Ограничения как бюджет решенияСначала пройдите зависимости
    2. s00-l02От полного перебора к узкому местуСначала пройдите зависимости
    3. s00-l03Инварианты, граничные случаи и тестыСначала пройдите зависимости
  2. Этап 01 · 2 урокаИнструменты языкаНужны зависимостиСледующий

    Практический мост к контейнерам, сортировке и рекурсии в C++ и Python.

    Опирается на
    00 · Как думать о задачах
    Открывает
    02 · Массивы, строки и хеширование; 03 · Два указателя; 06 · Стек, очередь и дек; 07 · Сортировка и интервалы; 10 · Деревья; 12 · Бэктрекинг; 13 · Графы и сетки; 18 · Битовые операции
    Открыть этап в курсе

    Уроки этапа

    1. s01-l01Контейнеры и стоимость операцийСначала пройдите зависимости
    2. s01-l02Сортировка, функции и рекурсия в двух языкахСначала пройдите зависимости

Область 02

Массивы и последовательности

Научиться поддерживать состояние линейного фрагмента.
  1. Этап 02 · 3 урокаМассивы, строки и хешированиеНужны зависимостиСледующий

    Линейные обходы, быстрый поиск, частоты и группировка.

    Опирается на
    01 · Инструменты языка
    Открывает
    03 · Два указателя; 04 · Скользящее окно; 05 · Префиксные техники; 07 · Сортировка и интервалы; 13 · Графы и сетки; 17 · Trie; 19 · Распознавание паттернов

    Практика для закрепления

    Открыть этап в курсе

    Уроки этапа

    1. s02-l01Обход массивов и строкСначала пройдите зависимости
    2. s02-l02Быстрый поиск: set и mapСначала пройдите зависимости
    3. s02-l03Частоты, группировка и подсчётСначала пройдите зависимости
  2. Этап 03 · 2 урокаДва указателяНужны зависимостиСледующий

    Движение границ с доказуемо безопасным отбрасыванием вариантов.

    Опирается на
    01 · Инструменты языка; 02 · Массивы, строки и хеширование
    Открывает
    06 · Стек, очередь и дек; 07 · Сортировка и интервалы; 09 · Связные списки; 19 · Распознавание паттернов

    Практика для закрепления

    Открыть этап в курсе

    Уроки этапа

    1. s03-l01Два указателя навстречуСначала пройдите зависимости
    2. s03-l02Указатели в одном направленииСначала пройдите зависимости
  3. Этап 04 · 2 урокаСкользящее окноНужны зависимостиСледующий

    Поддержание свойства непрерывного фрагмента без повторного пересчёта.

    Опирается на
    02 · Массивы, строки и хеширование
    Открывает
    06 · Стек, очередь и дек; 19 · Распознавание паттернов

    Практика для закрепления

    Открыть этап в курсе

    Уроки этапа

    1. s04-l01Окно фиксированного размераСначала пройдите зависимости
    2. s04-l02Расширение, сжатие и инвариант окнаСначала пройдите зависимости
  4. Этап 05 · 2 урокаПрефиксные техникиНужны зависимостиСледующий

    Накопленная информация для диапазонов и подмассивов.

    Опирается на
    02 · Массивы, строки и хеширование
    Открывает
    15 · Основы динамического программирования; 19 · Распознавание паттернов

    Практика для закрепления

    Открыть этап в курсе

    Уроки этапа

    1. s05-l01Префиксные суммы и счётчикиСначала пройдите зависимости
    2. s05-l02Префиксные и суффиксные накопленияСначала пройдите зависимости

Область 03

Порядок и линейные структуры

Использовать порядок данных и ограничения интерфейса.
  1. Этап 06 · 3 урокаСтек, очередь и декНужны зависимостиСледующий

    Порядок обработки и монотонные структуры.

    Опирается на
    01 · Инструменты языка; 03 · Два указателя; 04 · Скользящее окно
    Открывает
    10 · Деревья; 11 · Куча и приоритетная очередь; 19 · Распознавание паттернов

    Практика для закрепления

    Открыть этап в курсе

    Уроки этапа

    1. s06-l01Стек: незавершённая работа и скобкиСначала пройдите зависимости
    2. s06-l02Очередь и декСначала пройдите зависимости
    3. s06-l03Монотонный стек и монотонный декСначала пройдите зависимости
  2. Этап 07 · 3 урокаСортировка и интервалыНужны зависимостиСледующий

    Как порядок данных открывает структуру решения.

    Опирается на
    01 · Инструменты языка; 02 · Массивы, строки и хеширование; 03 · Два указателя
    Открывает
    08 · Бинарный поиск; 11 · Куча и приоритетная очередь; 12 · Бэктрекинг; 14 · Жадные алгоритмы; 19 · Распознавание паттернов

    Практика для закрепления

    Открыть этап в курсе

    Уроки этапа

    1. s07-l01Зачем сортировать перед решениемСначала пройдите зависимости
    2. s07-l02Слияние, разбиение и гарантии сортировокСначала пройдите зависимости
    3. s07-l03Интервалы, пересечения и объединениеСначала пройдите зависимости
  3. Этап 08 · 3 урокаБинарный поискНужны зависимостиСледующий
  4. Этап 09 · 2 урокаСвязные спискиНужны зависимостиСледующий

Область 04

Деревья и приоритет

Работать с иерархией и текущим экстремумом.
  1. Этап 10 · 4 урокаДеревьяНужны зависимостиСледующий
  2. Этап 11 · 2 урокаКуча и приоритетная очередьНужны зависимостиСледующий

    Повторный доступ к экстремуму, Top K и потоки.

    Опирается на
    06 · Стек, очередь и дек; 07 · Сортировка и интервалы
    Открывает
    13 · Графы и сетки; 19 · Распознавание паттернов

    Практика для закрепления

    Открыть этап в курсе

    Уроки этапа

    1. s11-l01Куча и priority queueСначала пройдите зависимости
    2. s11-l02Top K, потоки и слияние источниковСначала пройдите зависимости

Область 05

Перебор, графы и выбор

Исследовать пространство решений и доказывать выбор.
  1. Этап 12 · 2 урокаБэктрекингНужны зависимостиСледующий

    Перебор дерева решений с откатом и отсечениями.

    Опирается на
    01 · Инструменты языка; 07 · Сортировка и интервалы
    Открывает
    15 · Основы динамического программирования; 18 · Битовые операции; 19 · Распознавание паттернов

    Практика для закрепления

    Открыть этап в курсе

    Уроки этапа

    1. s12-l01Дерево решений: choose → recurse → undoСначала пройдите зависимости
    2. s12-l02Отсечения, дубликаты и мутация состоянияСначала пройдите зависимости
  2. Этап 13 · 6 уроковГрафы и сеткиНужны зависимостиСледующий

    Связность, обходы, зависимости и кратчайшие пути.

    Опирается на
    01 · Инструменты языка; 02 · Массивы, строки и хеширование; 10 · Деревья; 11 · Куча и приоритетная очередь
    Открывает
    16 · Двумерное и последовательностное DP; 19 · Распознавание паттернов

    Практика для закрепления

    Открыть этап в курсе

    Уроки этапа

    1. s13-l01Графы, списки смежности и сеткиСначала пройдите зависимости
    2. s13-l02DFS, компоненты и циклыСначала пройдите зависимости
    3. s13-l03BFS, кратчайший путь и несколько источниковСначала пройдите зависимости
    4. s13-l04Зависимости и топологический порядокСначала пройдите зависимости
    5. s13-l05DSU и динамическая связностьСначала пройдите зависимости
    6. s13-l06Дейкстра для неотрицательных весовСначала пройдите зависимости
  3. Этап 14 · 2 урокаЖадные алгоритмыНужны зависимостиСледующий

    Локальный выбор только вместе с доказательством безопасности.

    Опирается на
    00 · Как думать о задачах; 07 · Сортировка и интервалы
    Открывает
    19 · Распознавание паттернов

    Практика для закрепления

    Открыть этап в курсе

    Уроки этапа

    1. s14-l01Когда локальный выбор безопасенСначала пройдите зависимости
    2. s14-l02Сортировка + жадный выбор на интервалахСначала пройдите зависимости

Область 06

Состояния и специальные структуры

Строить переходы и выбирать специализированное представление.
  1. Этап 15 · 4 урокаОсновы динамического программированияНужны зависимостиСледующий
  2. Этап 16 · 2 урокаДвумерное и последовательностное DPНужны зависимостиСледующий
  3. Этап 17 · 1 урокTrieНужны зависимостиСледующий

    Практический индекс строковых префиксов.

    Опирается на
    02 · Массивы, строки и хеширование; 10 · Деревья
    Открывает
    19 · Распознавание паттернов

    Практика для закрепления

    Открыть этап в курсе

    Уроки этапа

    1. s17-l01Trie как индекс префиксовСначала пройдите зависимости
  4. Этап 18 · 2 урокаБитовые операцииНужны зависимостиСледующий

    Безопасные маски, XOR и множества малого размера.

    Опирается на
    00 · Как думать о задачах; 01 · Инструменты языка; 12 · Бэктрекинг
    Открывает
    19 · Распознавание паттернов

    Практика для закрепления

    Открыть этап в курсе

    Уроки этапа

    1. s18-l01Биты, сдвиги и безопасные маскиСначала пройдите зависимости
    2. s18-l02XOR и маски подмножествСначала пройдите зависимости

Область 07

Синтез

Распознавать форму новой задачи и объяснять решение.
  1. Этап 19 · 2 урокаРаспознавание паттерновНужны зависимостиСледующий

    Выбор техники по свойствам задачи, а не по ключевым словам.

    Опирается на
    02 · Массивы, строки и хеширование; 03 · Два указателя; 04 · Скользящее окно; 05 · Префиксные техники; 06 · Стек, очередь и дек; 07 · Сортировка и интервалы; 08 · Бинарный поиск; 09 · Связные списки; 10 · Деревья; 11 · Куча и приоритетная очередь; 12 · Бэктрекинг; 13 · Графы и сетки; 14 · Жадные алгоритмы; 16 · Двумерное и последовательностное DP; 17 · Trie; 18 · Битовые операции
    Открывает
    20 · Собеседование: итог
    Открыть этап в курсе

    Уроки этапа

    1. s19-l01Диагностика задачи без названия паттернаСначала пройдите зависимости
    2. s19-l02Проверяем гипотезу о порогеСначала пройдите зависимости
  2. Этап 20 · 2 урокаСобеседование: итогНужны зависимостиСледующий

    Смешанная практика, объяснение решения и план повторения.

    Опирается на
    19 · Распознавание паттернов
    Открывает
    итог курса
    Открыть этап в курсе

    Уроки этапа

    1. s20-l01Таймированная симуляция собеседованияСначала пройдите зависимости
    2. s20-l02Выпускной разбор и следующий циклСначала пройдите зависимости