题解 | #岛屿数量#

岛屿数量

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

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 判断岛屿数量
 * @param grid char字符型二维数组 
 * @param gridRowLen int grid数组行数
 * @param gridColLen int* grid数组列数
 * @return int整型
 */
int arr[1000][1000],sum=0;
void dfs(int x,int y,char **grid,int gridRowLen,int *gridColLen)
{
    int move[4][2]={{0,1},{1,0},{0,-1},{-1,0}},tx,ty;
    for(int i=0;i<4;i++)
    {
        tx=x+move[i][0];
        ty=y+move[i][1];
        if(ty<0||ty>=*gridColLen||tx<0||tx>=gridRowLen) 
        continue;
        if(grid[tx][ty]=='1'&&arr[tx][ty]==0)
        {
            arr[tx][ty]=1;
            dfs(tx,ty,grid,gridRowLen,gridColLen);
        }
    }
}
//arr用以即时记录走过的路径
//brr用以标记整块岛屿
int solve(char** grid, int gridRowLen, int* gridColLen ) {
    // write code here
    for(int q=0;q<gridRowLen;q++)
    {
        for(int w=0;w<*gridColLen;w++)
        {
            if(grid[q][w]=='1'&&arr[q][w]==0)
            {
                arr[q][w]=1;
                dfs(q,w,grid,gridRowLen,gridColLen);
                sum++;
            }
        }
    }
    return sum;
}

全部评论

相关推荐

头像
10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
11-05 07:29
贵州大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务