luoheng
10/7/2019 - 6:48 AM

islandPerimeter

func count(grid [][]int, i, j int) int{
    sum := 0
    if i - 1 >= 0 && grid[i-1][j] == 1 {
        sum++
    }
    if i + 1 < len(grid) && grid[i+1][j] == 1 {
        sum++
    }
    if j - 1 >= 0 && grid[i][j-1] == 1 {
        sum++
    }
    if j + 1 < len(grid[0]) && grid[i][j+1] == 1 {
        sum++
    }
    return sum
}

func islandPerimeter(grid [][]int) int {
    sum := 0
    for i := 0; i < len(grid); i++ {
        for j := 0; j < len(grid[0]); j++ {
            if grid[i][j] == 1 {
                sum += 4 - count(grid, i, j)
            }
        }
    }
    return sum
}