lc-go/solutions/2/q200/solution.go
2025-12-24 18:51:27 +09:00

31 lines
513 B
Go

package q200
const (
VISITED byte = '.'
LAND byte = '1'
)
func traverse(grid [][]byte, x, y int) int {
if x < 0 || y < 0 || x >= len(grid[0]) || y >= len(grid) || grid[y][x] != LAND {
return 0
}
grid[y][x] = VISITED
traverse(grid, x+1, y)
traverse(grid, x-1, y)
traverse(grid, x, y+1)
traverse(grid, x, y-1)
return 1
}
func numIslands(grid [][]byte) int {
count := 0
for y := range grid {
for x := range grid[y] {
count += traverse(grid, x, y)
}
}
return count
}
var _ = numIslands