岛屿的个数
给一个01矩阵,求不同的岛屿的个数。
0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。
样例
在矩阵:
[
[1, 1, 0, 0, 0],
[0, 1, 0, 0, 1],
[0, 0, 0, 1, 1],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 1]
]
中有 3 个岛.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
public class { * @param grid a boolean 2D matrix * @return an integer */ public int numIslands(boolean[][] grid) { int count=0; for(int i=0;i<grid.length;i++){ for(int j=0;j<grid[i].length;j++){ if(grid[i][j]==true){ count++; change(grid,i,j); } } } return count; } public void change(boolean[][] grid,int i,int j){ grid[i][j]=false; if(i>0 && grid[i-1][j]==true){ change(grid,i-1,j); } if(i<grid.length-1&&grid[i+1][j]==true){ change(grid,i+1,j); } if(j>0&&grid[i][j-1]==true){ change(grid,i,j-1); } if(j<grid[i].length-1&&grid[i][j+1]==true){ change(grid,i,j+1); } }
|
近期评论