Перейти к содержимому

LeetCode 1254: Количество замкнутых островов | Решение на C++ (DFS) | LeetCode POTD

SkillHub Student

0:00 / 0:00

LeetCode 1254: Количество замкнутых островов | Решение на C++ (DFS) | LeetCode POTD

53 просмотра · 7 дн. назад
SkillHub Student
14 подписчиков
53 просмотра · 7 дн. назад
🚀 Задача дня LeetCode: 1254. Количество замкнутых островов В этом видео мы решаем задачу LeetCode 1254 – Количество замкнутых островов, используя C++ и алгоритм поиска в глубину (DFS). 📌 Условие задачи Вам дана двумерная сетка, содержащая: 0 представляет сушу. 1 представляет воду. Остров — это группа ячеек суши, соединенных в четырех направлениях (вверх, вниз, влево и вправо). Замкнутый остров полностью окружен водой и не касается границы сетки. Задача состоит в том, чтобы вернуть общее количество замкнутых островов. 💡 Подход: DFS (поиск в глубину) 1. Создайте матрицу посещенных ячеек для отслеживания исследованных ячеек. 2. Пройдите по границам сетки и используйте DFS, чтобы отметить все участки суши, соединенные с границей. Эти острова не замкнуты. 3. Пройдите по оставшимся внутренним ячейкам. 4. При обнаружении непосещенной ячейки суши, увеличьте счетчик закрытых островов и используйте поиск в глубину (DFS) для обозначения всего острова. 5. Верните итоговое значение счетчика. 💻 Рассматриваемые темы ✅ Поиск в глубину (DFS) ✅ Обход графа ✅ Двумерные массивы и обход матриц ✅ Связные компоненты ✅ Посещенная матрица ✅ Решение задач на C++ ⏱️ Анализ сложности Временная сложность: O(n × m), где n — количество строк, а m — количество столбцов. Вспомогательная пространственная сложность: O(n × m) для посещенной матрицы и до O(n × m) для стека вызовов рекурсивного DFS. ⏱️ РАЗДЕЛЫ ВИДЕО 00:00 - Обзор задачи и объяснение 04:08 - Интуиция и определение граничных островов 06:48 - Маркировка островов с помощью DFS (рекурсивная логика) 18:25 - Оптимизированный подход и обход сетки 20:45 - Реализация кода на C++ 38:35 - Отладка и исправление ошибок компиляции/логики 41:48 - Финальная отправка и принятое решение 42:07 - Публикация решения и демонстрация на веб-сайте 📚 ПОЛЕЗНЫЕ ССЫЛКИ 🔹 Задача LeetCode: https://leetcode.com/problems/number-... 🔹 Учебник и решение на C++ SkillHub: https://skillhub-student.vercel.app/t... 🔹 Изучите SkillHub – учебные ресурсы и руководства: https://skillhub-student.vercel.app 🔹 Присоединяйтесь к сообществу SkillHub: http://skillhub-student.vercel.app/co... 🎯 Почему стоит ежедневно практиковаться на LeetCode? Ежедневная практика структур данных и алгоритмов улучшает ваши навыки решения задач, укрепляет понимание алгоритмов и помогает подготовиться к собеседованиям по программированию и техническим тестам. 👍 Если это видео вам помогло, поставьте ЛАЙК, ПОДЕЛИТЕСЬ им и ПОДПИШИТЕСЬ, чтобы получать больше решений LeetCode POTD и GeeksforGeeks POTD на C++. 🔔 Продолжайте программировать • Продолжайте учиться • Продолжайте расти вместе со SkillHub! #LeetCode #LeetCodePOTD #NumberOfClosedIslands #DFS #Cpp #DSA #CodingInterview #SkillHub