Статьи об алгоритмах и структурах данных
В блоге AlgoPath статьи об алгоритмах, структурах данных и подготовке к собеседованиям, для разработчиков без профильного образования. Статей сейчас 40. Многие разбирают один паттерн, с кодом и примером по шагам. Остальные объясняют, как учиться и как проходить собеседование.
Двоичное дерево поиска: правило, операции за O(h) и две задачи с собеседований
Слева меньше, справа больше, для каждого узла. Операции и их цена, код на Python, Validate BST через границы, k-й наименьший и наименьший общий предок, типичные ошибки.
2026-11-03
Количество одинаковых элементов в массиве JS
Словарь частот хранит значение и число его появлений. Один проход его строит, и четыре типовые задачи закрываются целиком.
2026-11-03
Мемоизация: кеш поверх рекурсии, lru_cache и отличие от таблицы
Когда кеш превращает экспоненту в линию, а когда не помогает. Код на Python с lru_cache и руками, Unique Paths, Word Break, сравнение с восходящим DP и ошибки.
2026-10-31
Обход дерева: прямой, симметричный, обратный и по уровням, с кодом на Python
Какой обход для какой задачи, порядок на одном дереве, рекурсивный и итеративный код на Python, задачи про высоту, диаметр и Right Side View, типичные ошибки.
2026-10-29
Слияние интервалов: сортировка, один проход и четыре задачи вокруг
Сортируем по началу и склеиваем с последним в ответе. Сигналы в условии, код на Python для Merge и Insert Interval, разбор Meeting Rooms II и Non-overlapping Intervals, ошибки.
2026-10-27
Как работает хеш-таблица
Хеш-таблица превращает ключ в индекс массива, и этот шаг объясняет все правила, которые тебе велели соблюдать. Константное время это среднее.
2026-10-27
Бинарный поиск в повёрнутом массиве: одна половина всегда отсортирована
Как за O(log n) искать в массиве, который сдвинули по кругу. Идея, код на Python для поиска цели и минимума, разбор на примере, случай с дубликатами и типичные ошибки.
2026-10-24
Обход графа: BFS или DFS, код на Python и задача Number of Islands
Когда брать очередь, а когда стек. Таблица выбора, сигналы в условии, код на Python для списка смежности и для сетки, разбор Number of Islands и типичные ошибки.
2026-10-22
Динамическое программирование: три шага, код на Python и разбор задач
Состояние, переход, база. Как узнать приём в задаче, чем таблица отличается от мемоизации, код на Python для Climbing Stairs, Coin Change и House Robber, типичные ошибки.
2026-10-20
Все статьи
- Двоичное дерево поиска: правило, операции за O(h) и две задачи с собеседований
- Количество одинаковых элементов в массиве JS
- Мемоизация: кеш поверх рекурсии, lru_cache и отличие от таблицы
- Обход дерева: прямой, симметричный, обратный и по уровням, с кодом на Python
- Слияние интервалов: сортировка, один проход и четыре задачи вокруг
- Как работает хеш-таблица
- Бинарный поиск в повёрнутом массиве: одна половина всегда отсортирована
- Обход графа: BFS или DFS, код на Python и задача Number of Islands
- Динамическое программирование: три шага, код на Python и разбор задач
- Структуры данных в JavaScript: множество, словарь или массив
- Бэктрекинг: шаблон из трёх строк, код на Python и разбор N ферзей
- Префиксные суммы: сумма на отрезке за O(1) и подсчёт подмассивов
- Скользящее окно: как узнать приём в задаче и написать за O(n)
- Таблица сложности алгоритмов: что успеет пройти
- Алгоритм Дейкстры: кратчайшие пути с кучей за O((V + E) log V)
- Бинарный поиск по ответу: приём для задач про минимальную скорость и вместимость
- Быстрый и медленный указатели: цикл и середина списка без лишней памяти
- Big O простыми словами
- Префиксное дерево (trie): когда set не хватает и как написать за 20 строк
- Система непересекающихся множеств: union-find за O(1) и когда его брать
- Бинарная куча: как устроена, когда нужна и как написать на Python
- Как научиться решать алгоритмические задачи
- Алгоритм Кана: топологическая сортировка простыми словами
- Эйлеров путь: когда он существует и как найти его за O(E)
- Тренажёр алгоритмов: чем он отличается от банка задач
- Монотонный стек: как узнать его в задаче и написать за 10 минут
- Два указателя и скользящее окно: как их не путать
- Где решать задачи по программированию
- Алгоритмическая секция: что на ней оценивают
- LeetCode на русском: чего нет и что с этим делать
- Волнение на собеседовании: как решать под таймером
- Интервальные повторения: почему повторять на 4-й день, а не завтра
- Активное вспоминание: почему оно сильнее перечитывания
- Как решать алгоритмические задачи на собеседовании: сначала условие
- Уровни и рейтинг, который видно всем
- Паттерны алгоритмов: навык, который никто не тренирует
- Как подготовиться к алгоритмическому собеседованию
- Три новых языка: Добро пожаловать TypeScript, Java и C#!
- Ненавижу алгоритмы: что на самом деле идёт не так
- Зачем я сделал AlgoPath