Алгоритмы на javascript. Стек и рекурсия.
Вставка
- Опубліковано 8 жов 2024
- В этом видео мы рассмотрим такую структуру данных, как стек, на примере стека вызовов в компьютере. Научимся решать задачки рекурсивным методом на простом примере и разберём задачку на расчёт факториала.
Мой телеграм канал: t.me/konstanti...
Задачи для самостоятельного решения.
На рекурсию:
1. Числа фибоначи - leetcode.com/p...
2. Степень двойки - leetcode.com/p...
Популярная задачка на стек:
1. Валидная скобочная последовательность - leetcode.com/p...
Кстати, алгоритм быстрой сортировки тоже является рекурсивным. Пишите в комментарии, удалось ли решить все задачки
Хорошая подача, понятное объяснение, продолжай, успехов.
Спасибо за видео, великолепное объяснение! Решил задачки, освежил в памяти такую достаточно важную тему :)
Посмотрев видео в наглухо забитом автобусе понял, что аналогия с тарелочками больше похожа на автобус. Первый зашёл - последний вышел 😅
Спасибо
отличное видео! подписка! разбери деревья и рекурсивный обход по этой структуре данных.
Хотелось бы увидеть реальные задачи на стеке, хотя 2-3, 🙏
На самом деле стек используется повсеместно. Например, реализация отмены через ctrl + Z в приложениях, как наиболее явный кейс. А так это любое использование массива в качестве сохранения состояния с учетом последовательности
Отличное видео, а что за микрофон?)
Спасибо! Fifine a8
Привет! Есть совет как быть уверенным в задачках с применением рекурсии? Я могу решить обычные задачи типа Фибоначчи и т.д. но если что-то связанное с массивами или вложенными объектами, то уже ступор. Очевидный ответ будет больше практики, но этот рубикон как перейти в понимании?
Привет! Это очень хороший и в тоже время сложный вопрос. Да, очевидным ответом - больше практики. Но что скрывается под этим? Сами по себе задачи требующие рекурсивного решения чаще всего далеко не самые простые, вроде задач на DFS, BFS и другие обходы деревьев. Конечно, нужно нарешивать от простого к сложному. Также может помочь визуализация с использованием бумаги и карандаша для отслеживания процесса в задаче, в частности рекурсии. Было время, я упарывался в решение задач на динамику, которые отчасти меняют мышление в подходе к решению задач. Попробуй, возможно, что решение сложных задач на динамику помогут развить необходимые навыки для использования рекурсии. По сути рекурсия - не единственный метод, которым можно решить задачу. Чаще всего есть и более линейные варианты (опять отсылка к динамике).
Резюме: сложные задачи на то и сложные, и чтобы их научиться решать нужно просто прорешать их все, другого варианта не вижу. Со временем запоминаются определенные паттерны. Нарешивай задачи на одну тему, долгое время это будет тяжело, каждая новая задача будет как совершенно несвязанная с предыдущими на ту же тему, это нормально.
Используй бумагу и карандаш для визуализации процесса и не пренебрегай чужими решениями для разбора, если не идет.
P.S. Вряд ли я написал что-то новое, но ты и сам сказал, что очевидно только практика. При том долгая и упорная, в несколько заходов. Другого я не знаю.
Давай деревья)