题解 | #岛屿数量#
岛屿数量
http://www.nowcoder.com/practice/0c9664d1554e466aa107d899418e814e
思路:dfs,找到一个1,把它及其周围的1全变为0.之后,总共找到多少个1,就是多少个岛屿。
public int solve (char[][] grid) { // write code here int island=0; for(int i=0;i<grid.length;i++){ for(int j=0;j<grid[0].length;j++){ if(grid[i][j]=='1'){ island++; dfs(i,j,grid); } } } return island; } public void dfs(int i,int j,char[][] grid){ if(i<0 || j<0 ||i>=grid.length || j>=grid[0].length || grid[i][j]=='0'){ return; } grid[i][j]='0'; dfs(i+1,j,grid); dfs(i,j+1,grid); dfs(i-1,j,grid); dfs(i,j-1,grid); }