Модуль 3.10: Алгоритмы и структуры данных
Зачем алгоритмы
Массивы и строки
Техники Two Pointers и Sliding Window — решение 80% задач LeetCode на массивы и строки.
Хэш-таблицы
Map, Set и Object как хэш-таблицы — O(1) поиск, счётчики, LRU-кэш.
Стек и очередь
LIFO и FIFO в JS: реализация, применение в undo/redo, BFS и проверке скобок.
Связанные списки
Односвязный и двусвязный список, Floyd's алгоритм, задачи LeetCode: разворот, середина, цикл, LRU Cache.
Деревья
Бинарные деревья, BST, четыре вида обхода (DFS/BFS), задачи LeetCode и связь с DOM.
Сортировки
Bubble, Selection, Insertion, Merge, Quick Sort — сравнение, когда что применять и правильный Array.sort().
Бинарный поиск
O(log n) поиск в отсортированных данных: базовый алгоритм, варианты (первое/последнее вхождение), бинарный поиск по ответу.
Рекурсия
Base case, стек вызовов, мемоизация, backtracking — разбор с аналогиями и практическими задачами на деревья и перебор.
Практика LeetCode
Топ-10 задач LeetCode с разбором паттернов: Two Sum, Sliding Window, DFS/BFS, LRU Cache и стратегия подготовки к собеседованию.