Combination Sum (LeetCode 39) — Backtracking с отсечением (pruning) на C++ | Самая популярная зад...
Tech For Geeks
0:00 / 0:00
Combination Sum (LeetCode 39) — Backtracking с отсечением (pruning) на C++ | Самая популярная зад...
68 просмотров · 7 дн. назад
Tech For Geeks
42 подписчика
68 просмотров · 7 дн. назад
Задача «Сумма комбинаций» (LeetCode 39) — одна из самых часто задаваемых задач на собеседованиях по программированию. Сначала изучите шаблон поиска с возвратом: выбор, исследование, отмена выбора; начальный индекс, предотвращающий повторение комбинаций; и отсечение с помощью сортировки + break. Затем решите задачу шаг за шагом: описание задачи и примеры, что говорят ограничения, почему наивный поиск приводит к дубликатам, суть, план рекурсии, как один символ превращает задачу в «Сумму комбинаций II» или «Подмножества», полный пробный запуск дерева рекурсии, чистый код на C++ и сложность.
🔥 Одна из самых часто задаваемых задач на собеседованиях по программированию — часто встречается в Amazon, Microsoft, Google, Uber, Airbnb (на основе отчетов с собеседований в сообществе).
В этом видео:
• Шаблон обратного поиска: выбор, исследование, отмена выбора
• Начальный индекс, который формирует каждую комбинацию один раз
• Отсечение: сортировка, затем остановка, когда кандидат слишком велик
• LeetCode 39: задача, примеры и ограничения
• dfs(i) против dfs(i + 1) против перестановок
• Полный пробный запуск дерева рекурсии, код на C++, сложность
⏱️ Разделы
0:00 Один из самых часто задаваемых вопросов на собеседованиях
0:26 Шаблон: краткий обзор обратного поиска
0:44 Шаблон: выбор, исследование, отмена выбора
1:02 Шаблон: начальный индекс предотвращает дублирование комбинаций
1:22 Шаблон: отсечение, остановка на ранней стадии, когда это не работает
1:40 Шаблон: быстрый пробный запуск
2:40 Шаблон: как его распознать
2:58 Шаг 1 · Задача: Сумма комбинаций (LeetCode 39)
3:34 Шаг 1 · Понимание примеров
4:04 Шаг 1 · Ограничения и что они нам говорят
4:26 Шаг 2 · Подход: наивный поиск создает дубликаты
4:52 Шаг 2 · Подход: неубывающий порядок + повторное использование
5:14 Шаг 2 · Подход: рекурсивный план
5:43 Шаг 2 · Подход: один символ меняет задачу
6:05 Шаг 3 · Решение: пробный запуск
6:42 Шаг 3 · Решение: пробный запуск (продолжение)
7:03 Шаг 3 · Решение: пробный запуск (завершение)
7:29 Шаг 3 · Код: функция возврата
7:58 Шаг 3 · Код: основная функция
8:13 Шаг 3 · Решение: сложность
8:38 Тот же шаблон в других местах
8:59 Резюме
9:30 Ставьте лайки и подписывайтесь
🧩 Практика
LeetCode 39 · Сумма комбинаций → https://leetcode.com/problems/combina...
LeetCode 40 · Сумма комбинаций II → https://leetcode.com/problems/combina...
LeetCode 78 · Подмножества → https://leetcode.com/problems/subsets/
LeetCode 46 · Перестановки → https://leetcode.com/problems/permuta...
💻 Полный код на C++:
📺 Анимированные структуры данных и алгоритмы — Анимированные структуры данных и алгоритмы — на C++. Полный плейлист: [добавить ссылку на плейлист]
⏮️ Предыдущий: Эпизод 49 · K наиболее часто встречающихся элементов
⏭️ Следующий: Эпизод 51 · Сбор дождевой воды
👍 Поставьте лайк видео и подпишитесь, чтобы получать больше анимированных структур данных и алгоритмов.
#Backtracking #CodingInterview #Cpp