高端做网站公司哪家好,网站文案设计,国内 wordpress主机,北京网站建站推给定一个由 1#xff08;陆地#xff09;和 0#xff08;水#xff09;组成的的二维网格#xff0c;计算岛屿的数量。一个岛被水包围#xff0c;并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。
示例 1:
输入: 11110 11010…给定一个由 1陆地和 0水组成的的二维网格计算岛屿的数量。一个岛被水包围并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。
示例 1:
输入: 11110 11010 11000 00000
输出: 1 示例 2:
输入: 11000 11000 00100 00011
输出: 3
思路将相邻的1看作是两个点之间存在边0看作孤立点
用深度优先遍历或者广度优先遍历
dfs
提交的代码
class Solution { public void dfs(char grid[][],int i,int j) { if(i0||j0||igrid.length||jgrid[0].length||grid[i][j]0) { return; } grid[i][j]0; dfs(grid,i1,j); dfs(grid,i-1,j); dfs(grid,i,j1); dfs(grid,i,j-1); } public int numIslands(char[][] grid) { if(grid.length0) { return 0; } int sum0; for(int i0;igrid.length;i) { for(int j0;jgrid[0].length;j) { if(grid[i][j]1) { sum; dfs(grid,i,j); } } } return sum; }
}