题解 | #岛屿数量#

岛屿数量

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

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 判断岛屿数量
 * @param grid char字符型二维数组 
 * @param gridRowLen int grid数组行数
 * @param gridColLen int* grid数组列数
 * @return int整型
 */
 void dfs(char** grid, int gridRowLen, int* gridColLen, int i, int j ){
    if(i<0||j<0||i>=gridRowLen||j>=*gridColLen||grid[i][j]=='0')
        return;
    else{
        grid[i][j] = '0';
        printf("%d,%d\n",i,j);
        dfs(grid,gridRowLen,gridColLen,i-1,j);
        dfs(grid,gridRowLen,gridColLen,i+1,j);
        dfs(grid,gridRowLen,gridColLen,i,j-1);
        dfs(grid,gridRowLen,gridColLen,i,j+1);
    }

}

int solve(char** grid, int gridRowLen, int* gridColLen ) {
    // write code here
    int ans = 0;

    for(int i = 0;i < gridRowLen;i++){
        for(int j = 0;j < *gridColLen;j++){
            if(grid[i][j] == '1'){
                ans++;
                dfs(grid,gridRowLen,gridColLen,i,j);
            }
        }
    }
    return ans;
}

全部评论

相关推荐

03-04 14:31
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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