Java&Go-LeetCode463. 岛屿的周长-减去重复边

  • 算法
    • 1.统计陆地(1)的个数
    • 2.统计重边个数,没遇到一个陆地检查其下方和右方是否也是陆地,如果是就含有一个重边
    • 3.4*陆地个数-2*重边个数即是岛屿周长
public int islandPerimeter(int[][] grid) {
    int row = grid.length;
    int col = grid[0].length;
    int grids = 0;
    int repeatEdges = 0;
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < col; j++) {
            if (grid[i][j] == 1) {
                grids++;
                if (i + 1 < row && grid[i+1][j] == 1) {
                    repeatEdges++;
                }
                if (j + 1 < col && grid[i][j+1] == 1) {
                    repeatEdges++;
                }
            }
        }
    }
    return 4 * grids - 2 * repeatEdges;
}
func islandPerimeter(grid [][]int) int {
    var row = len(grid)
    var col = len(grid[0])
    var grids = 0
    var repeatEdges = 0
    for i := 0; i < row; i++ {
        for j := 0; j < col; j++ {
            if grid[i][j] == 1 {
                grids++
                if i + 1 < row && grid[i+1][j] == 1 {
                    repeatEdges++
                }
                if j + 1 < col && grid[i][j+1] == 1 {
                    repeatEdges++
                }
            }
        }
    }
    return 4 * grids - 2 * repeatEdges
}
全部评论

相关推荐

07-14 13:47
门头沟学院 Java
Lynn012:你评估好自己的位置了吗《顶尖应届》
投递小米集团等公司7个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 12:05
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务