题解 | #岛屿数量#

岛屿数量

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

总结:
1.根据题意可知,每找到一个连通分量就是一个岛屿。所以可以使用循环访问所有的点,每找到一个未被访问且值为1的点就是一个连通分量,岛屿数就加1.找到一个岛屿后就使用深度优先搜索把岛上所有的点遍历一遍,标记为已访问。

import java.util.*;


public class Solution {
    /**
     * 判断岛屿数量
     * @param grid char字符型二维数组 
     * @return int整型
     */
    boolean[][] visited;
    public int solve (char[][] grid) {
        // write code here
        int rowNum = grid.length;
        int colNum = grid[0].length;
        visited = new boolean[rowNum][colNum];
        int num = 0;//岛屿数量
        for(int i=0;i<rowNum;i++)
            for(int j=0;j<colNum;j++){
                if((!visited[i][j])&&grid[i][j]=='1'){
                    dfs(grid,i,j,rowNum,colNum);
                    num++;
                }
            }
        return num;
    }
    public void dfs(char[][] grid,int i,int j,int rowNum,int colNum){
            visited[i][j]=true;
            if(j-1>=0 && grid[i][j-1]=='1'&&(!visited[i][j-1]))
                dfs(grid,i,j-1,rowNum,colNum);//向左找
            if(j+1<colNum && grid[i][j+1]=='1'&&(!visited[i][j+1]))
                dfs(grid,i,j+1,rowNum,colNum);//向右找
            if(i-1>=0 && grid[i-1][j]=='1'&&(!visited[i-1][j]))
                dfs(grid,i-1,j,rowNum,colNum);//向下找
            if(i+1<rowNum && grid[i+1][j]=='1'&&(!visited[i+1][j]))
                dfs(grid,i+1,j,rowNum,colNum);//向下找

    }
}
全部评论

相关推荐

家人们,我现在真的好纠结。我是26届的,目前还没有实习过。我现在的情况是,想参加秋招,但是感觉自己的简历特别空,没有实习经历会不会秋招直接凉凉啊?可我又听说现在很多公司对26届实习生也不太感冒,说什么不确定性大。而且我最近在准备考公,时间上也有点冲突。要是把时间花在实习上,备考时间就少了。但要是不实习,又怕以后就业有问题😫有没有懂行的友友帮我分析分析:26届现在不实习,秋招找工作真的会很难吗?考公和实习该怎么平衡啊?如果现在不实习,考完公再去找实习还来得及吗?真的太焦虑了,希望大家能给我点建议🙏
小破站_程序员YT:我可能和大家的观点不一样。人的精力是有限的,不能既要还要。你又想实习又想考公最后又要秋招上岸,我觉得哪有那么多的选择。你如果想考上岸,那就全力以赴。如果想秋招上岸,就继续投实习,投没了,就继续准备秋招,秋招不行继续春招。别到最后,考公没上岸,觉得是花了时间浪费在找实习上了, 秋招没上岸,觉得是浪费时间准备考公去了。我是认为很难说可以去平衡 不喜勿喷,可以叫我删除
点赞 评论 收藏
分享
字节一直是我的白月光,考虑到转正还是拒了日常实习。
从今天开始狠狠卷JVAV_癫:为什么你释放的offer没流到我头上
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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