搜索2岛屿的数量(medium)

Posted 念奕玥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搜索2岛屿的数量(medium)相关的知识,希望对你有一定的参考价值。

leetcode 200 岛屿的数量

同是岛屿问题,同样是用网格来表示。可以复用岛屿周长的思路:基本的dfs框架;搜索遍历的停止方式。

class Solution 
    public int numIslands(char[][] grid) 
    	//记录岛屿数量。
        int count=0;
        //对整个网格进行遍历
        for(int i=0;i<grid.length;i++)
            for(int j=0;j<grid[0].length;j++)
            	//遇到岛屿则进入搜索
                if(grid[i][j]=='1')
                    dfs(grid,i,j);
                    count++;
                
            
        
        return count;

    
    public void dfs(char[][] grid,int i, int j )
        if(i<0 || j<0 || i>=grid.length || j>=grid[0].length 
        || grid[i][j]=='0') return;
        //遍历过的岛屿置0,防止二次遍历,导致无限循环。
        grid[i][j]='0';
		//一直遍历,直到不符合条件则返回,此时遍历的都属于一个岛屿。
        dfs(grid,i-1,j);
        dfs(grid,i,j-1);
        dfs(grid,i,j+1);
        dfs(grid,i+1,j);
    

以上是关于搜索2岛屿的数量(medium)的主要内容,如果未能解决你的问题,请参考以下文章

搜索2岛屿的数量(medium)

搜索2岛屿的数量(medium)

岛屿类问题的通用解法DFS 遍历框架

岛屿问题(岛数量/孤岛/面积/周长)

岛屿问题(岛数量/孤岛/面积/周长)

岛屿问题(岛数量/孤岛/面积/周长)