See More

import java.util.LinkedList; import java.util.Queue; public class numIslands200 { //深度优先算法 public int numIslands(char[][] grid) { if(grid==null||grid.length==0) return 0; int r=grid.length; int l=grid[0].length; int num_islands=0; for(int i=0;i=nr||l>=nl||grid[r][l]=='0'){ return; } grid[r][l] = '0'; for(int x=0;x list=new LinkedList<>(); list.add(new int[]{i,j}); while(!list.isEmpty()){ int[] cur=list.remove(); i= cur[0];j=cur[1]; if(0 <= i && i < grid.length && 0 <= j && j < grid[0].length && grid[i][j] == '1') { grid[i][j] = '0'; list.add(new int[] { i + 1, j }); list.add(new int[] { i - 1, j }); list.add(new int[] { i, j + 1 }); list.add(new int[] { i, j - 1 }); } } } }