Фразы-триггеры и паттерны (LeetCode)
Как использовать
Читай условие задачи → находи ключевую фразу → выбирай паттерн.
| Фраза в условии | Паттерн | Примечание |
|---|---|---|
longest substring | 🪟 Sliding Window | Искать максимальное окно |
minimum window | 🪟 Sliding Window | Искать минимальное окно |
subarray with sum | 🪟 Sliding Window / Prefix Sum | Зависит от условий |
sorted array | 🔍 Binary Search / Two Pointers | Если поиск → Binary Search |
pair with target sum | 🔍 Two Pointers / Hash Map | Если sorted → Two Pointers |
remove duplicates | 🔍 Two Pointers | In-place модификация |
palindrome | 🔍 Two Pointers / DP | Простая проверка → Two Pointers |
in-place | 🔍 Two Pointers | Без доп. памяти |
linked list cycle | 🔍 Two Pointers (Fast/Slow) | Floyd’s algorithm |
shortest path | 📡 BFS | Граф без весов → BFS |
level order | 📡 BFS | Обход дерева по уровням |
minimum steps | 📡 BFS | Кратчайший путь → BFS |
all combinations | 🔁 Backtracking | Полный перебор с возвратом |
all permutations | 🔁 Backtracking | Перестановки |
generate all | 🔁 Backtracking | Генерация вариантов |
top K elements | 🏔️ Heap | K-largest/smallest |
kth largest/smallest | 🏔️ Heap / Quickselect | Heap проще |
merge K sorted | 🏔️ Heap | Слияние списков/массивов |
maximum/minimum | 📐 DP / Greedy | Если оптимизация → DP |
count ways | 📐 DP | Комбинаторика с мемоизацией |
longest/shortest | 📐 DP / Sliding Window | Подпоследовательность → DP |
frequency | 🗂️ Hash Map | Подсчет встречаемости |
anagram | 🗂️ Hash Map | Сравнение частот символов |
find duplicates | 🗂️ Hash Map / Set | O(1) lookup |
valid parentheses | 📚 Stack | Балансировка скобок |
next greater/smaller | 📚 Monotonic Stack | Монотонный стек |
rotate | 🔧 Array manipulation | Реверс частей массива |
Паттерны
- two-pointers — два указателя
- sliding-window — скользящее окно
- binary-search — бинарный поиск
- prefix-sums — префиксные суммы
- heap — куча и очередь с приоритетом
- backtracking — поиск с возвратом
- dynamic-programming — динамическое программирование
- greedy — жадные алгоритмы
- trie — префиксное дерево
- graphs — графы
- trees — деревья