TGViewer
Golang | LeetCode Golang | LeetCode @easy_golang_task · 3.57K subscribers
Post #1628 217
Задача: 200. Number of Islands
Сложность: medium

Дана двумерная бинарная сетка размером m x n, представляющая карту из '1' (земля) и '0' (вода). Верните количество островов.

Остров окружён водой и образуется путём соединения соседних земель горизонтально или вертикально. Можно предположить, что все четыре края сетки окружены водой.

Пример:
Input: grid = [
["1","1","1","1","0"],
["1","1","0","1","0"],
["1","1","0","0","0"],
["0","0","0","0","0"]
]
Output: 1


👨‍💻 Алгоритм:

1⃣Обход всей сетки:
- Если найден '1', запускаем поиск в глубину (DFS).

2⃣DFS для пометки острова:
- Заменяем '1' на '0', чтобы избежать повторного посещения.
- Рекурсивно вызываем DFS для всех четырёх направлений.

3⃣Подсчет островов:
- Каждый запуск DFS означает новый остров.
- Увеличиваем счетчик островов.

😎 Решение:
package main

func numIslands(grid [][]byte) int {
if len(grid) == 0 {
return 0
}

numIslands := 0
for i := 0; i < len(grid); i++ {
for j := 0; j < len(grid[0]); j++ {
if grid[i][j] == '1' {
dfs(grid, i, j)
numIslands++
}
}
}
return numIslands
}

func dfs(grid [][]byte, r, c int) {
if r < 0 || c < 0 || r >= len(grid) || c >= len(grid[0]) || grid[r][c] != '1' {
return
}

grid[r][c] = '0'
dfs(grid, r-1, c)
dfs(grid, r+1, c)
dfs(grid, r, c-1)
dfs(grid, r, c+1)
}


Ставь 👍 и забирай 📚 Базу знаний
More from @easy_golang_task
  1. Oct 9, 2026Задача: 336. Palindrome Pairs Сложность: hard Вам дан массив уникальных строк words, индек…
  2. Oct 7, 2026🔥 Скрытые вакансии с удаленной работой для Golang разработчика, которые нигде больше не п…
  3. Oct 5, 2026Задача: 897. Increasing Order Search Tree Сложность: easy Задав корень дерева двоичного по…
  4. Oct 4, 2026Задача: 313. Super Ugly Number Сложность: medium Супер некрасивое число — это положительно…
  5. Oct 3, 2026Задача: 1166. Design File System Сложность: medium Вам нужно разработать файловую систему,…
  6. Oct 2, 2026Задача: 947. Most Stones Removed with Same Row or Column Сложность: medium Учитывая массив…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →