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
}
全部评论

相关推荐

后端转测开第一人:再怎么劝退也没用的 某些群体总以为在一个幸存者偏差的软件上看见了极少数秋招上岸某个大厂的个例就幻想上了 事实上自己打开ssob沟通1000+连个小厂面试都没
点赞 评论 收藏
分享
10-29 19:45
吉林大学 Java
从零开始数:自我评价没有必要写,但是看起来你应该是学了csdiy的一些课程,可以在专业技能里面写上自己比较熟悉操作系统和计网,但如果你是找Java的话,把第一个项目换了吧,现在看起来有点四不像。 无论是黑马点评或者说做个轮子项目,刷题和八股也搞起来吧,而且也没必要等到寒假,最近就可以开始找,找到就偷偷实习呗,别被逮到就行了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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