岛屿数量 - 洪水填充

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)
}