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