TOP101题解 | BM57#岛屿数量#

岛屿数量

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

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * @author Senky
 * @date 2023.08.26
 * @par url https://www.nowcoder.com/creation/manager/content/584337070?type=column&status=-1
 * 判断岛屿数量
 * @param grid char字符型二维数组 
 * @param gridRowLen int grid数组行数
 * @param gridColLen int* grid数组列数
 * @return int整型
 */

void DFS(char** grid, int gridRowLen, int gridColLen, int row, int column)
{
    /*非法值,以及访问、访问标记则退出*/
    if(row < 0 || column < 0 || row >= gridRowLen || column >= gridColLen || grid[row][column] == '0')
    {
        return;
    }
    else 
    {
        grid[row][column] = '0';/*访问标记,同海洋*/

        DFS(grid, gridRowLen, gridColLen, row - 1, column);/*上*/
        DFS(grid, gridRowLen, gridColLen, row + 1, column);/*下*/
        DFS(grid, gridRowLen, gridColLen, row, column - 1);/*左*/
        DFS(grid, gridRowLen, gridColLen, row, column + 1);/*右*/
    }
}

int solve(char** grid, int gridRowLen, int* gridColLen ) 
{
    // write code here
    int IslandCount = 0;
    for(int row = 0; row < gridRowLen; row++)
    {
        for(int column = 0; column < gridColLen[row]; column++)
        {
            if(grid[row][column] == '1')
            {
                IslandCount++;//岛屿++
                DFS(grid, gridRowLen, gridColLen[row], row, column);
            }
        }
    }

    return IslandCount;
}

#TOP101#
TOP101-BM系列 文章被收录于专栏

系列的题解

全部评论

相关推荐

野猪不是猪🐗:这种直接口头上答应,骗面试,面完了直接拉黑,相当于给自己攒面经了(
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务