岛屿数量 - 洪水填充
var (
n int
m int
theGrid [][]byte
)
func numIslands(grid [][]byte) int {
n = len(grid)
if n == 0 {
return 0
}
m = len(grid[0])
theGrid = grid
ans := 0
for i := 0; i < n; i++ {
for j := 0; j < m; j++ {
if grid[i][j] == '1' {
process(i, j)
ans++
}
}
}
return ans
}
func process(i, j int) {
if i < 0 || i >= n || j < 0 || j >= m || theGrid[i][j] != '1' {
return
}
theGrid[i][j] = '2'
process(i - 1, j)
process(i, j - 1)
process(i + 1, j)
process(i, j + 1)
}