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