200. 岛屿数量

func numIslands(grid [][]byte) int {

}
func numIslands(grid [][]byte) (ans int) {
    var (
        m   = len(grid)
        n   = len(grid[0])
        dir = [][]int{{0, 1}, {0, -1}, {1, 0}, {-1, 0}}
        dfs func(i, j int)
    )
    dfs = func(i, j int) {
        if i < 0 || i >= m || j < 0 || j >= n || grid[i][j] == '0' {
            return
        }
        grid[i][j] = '0'
        for _, v := range dir {
            dfs(i+v[0], j+v[1])
        }
    }
    for i := 0; i < m; i++ {
        for j := 0; j < n; j++ {
            if grid[i][j] == '1' {
                ans++
                dfs(i, j)
            }
        }
    }
    return
}