题解 | #岛屿数量#

岛屿数量

https://www.nowcoder.com/practice/0c9664d1554e466aa107d899418e814e

package main



/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 判断岛屿数量
 * @param grid char字符型二维数组
 * @return int整型
 */
func solve( grid [][]byte ) int {
    // write code here

    res := 0


   

    h := len(grid[0])
    v := len(grid)

    var findOthers func(i int , j int)
  
  
  	//找出所有关联的点置为 '0' 

    findOthers = func(i, j int) {
        if grid[i][j] == '0'{
            return
        }else{
            grid[i][j] = '0'
            if i-1>=0 && i-1<v && j>=0 && j<h{
                findOthers(i-1,j)
            }
            if i>=0 && i<v && j-1>=0 && j-1<h{
                findOthers(i,j-1)
            }
            if i+1>=0 && i+1<v && j>=0 && j<h{
                findOthers(i+1,j)
            }
            if i>=0 && i<v && j+1>=0 && j+1<h{
                findOthers(i,j+1)
            }
        }


    }

    for i,list := range grid{
        for j,code := range list{

            if code == '1' {
                res++
                findOthers(i,j)

            }


        }
    }

    return res






}

全部评论

相关推荐

07-22 13:50
门头沟学院 Java
仁者伍敌:其实能找到就很好了,当然收支能抵
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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