题解 | #岛屿数量#

岛屿数量

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

void dfs(char** grid, int gridRowLen, int gridColLen, int x, int y) {
    // 判断当前坐标是否在矩阵范围内
    if (x < 0 || x >= gridRowLen || y < 0 || y >= gridColLen) {
        return;
    }
    
    // 如果当前位置不是陆地或者已经访问过,返回
    if (grid[x][y] == '0') {
        return;
    }
    
    // 标记当前位置为海洋,表示已经访问过
    grid[x][y] = '0';
    
    // 递归处理四个方向
    dfs(grid, gridRowLen, gridColLen, x - 1, y); // 上
    dfs(grid, gridRowLen, gridColLen, x + 1, y); // 下
    dfs(grid, gridRowLen, gridColLen, x, y - 1); // 左
    dfs(grid, gridRowLen, gridColLen, x, y + 1); // 右
}

int solve(char** grid, int gridRowLen, int* gridColLen) {
    int islandCount = 0;
    
    // 遍历整个网格
    for (int i = 0; i < gridRowLen; i++) {
        for (int j = 0; j < *gridColLen; j++) {
            // 如果当前格子是陆地且没有被访问过
            if (grid[i][j] == '1') {
                // 使用DFS搜索整个岛屿并标记
                dfs(grid, gridRowLen, *gridColLen, i, j);
                // 发现一个新的岛屿,计数加一
                islandCount++;
            }
        }
    }
    
    return islandCount;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
04-30 11:43
春招失败、父母离婚,好像我的人生一团糟,一年来压力大到常常崩溃。不知道能跟谁聊,朋友其实对我非常好,但是她无意中表达出来的家庭幸福都会刺痛到我……和ai聊天,我的未来在更高处,不在楼下,忍不住爆哭😭
youngfa:害,妹妹,我是一个研究生(很上进很想找到好工作的那种),但去年因为生病回家休养错过了秋招(当时对我的冲击也是非常大的),这学期返校来了也是把论文盲审交了后才开始找工作,现在也是一个offer没有,但我就没有像你一样把这个阶段性的事情绑定到人生上,人生不仅很长,也很广阔,先停下来,放松一下哦。不要被外部环境灌输的思维操控了,好好爱自己!
点赞 评论 收藏
分享
04-11 21:31
四川大学 Java
野猪不是猪🐗:(ja)va学弟这招太狠了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务