搜索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)的主要内容,如果未能解决你的问题,请参考以下文章