public class Solution {
private int result = 0;
private char[][] grid = null;
private int row = 0;
private int column = 0;
public int numIslands(char[][] grid) {
ConcurrentHashMap map = new ConcurrentHashMap();
map.size();
map.put("a", "b");
map.get("a");
this.grid = grid;
this.row = grid.length;
if (row == 0) {
return row;
}
this.column = grid[0].length;
for (int i = 0; i < row; i ++) {
for (int j = 0; j < column; j ++) {
if (grid[i][j] == '1') {
result ++;
dfs(i, j);
}else {
continue;
}
}
}
return result;
}
private void dfs(int i, int j) {
if (i >= row || j >= column | i < 0 | j < 0) {
return;
}
if (grid[i][j] == '1') {
grid[i][j] = '0';
dfs(i +1, j);
dfs(i -1, j);
dfs(i , j+1);
dfs(i , j-1);
}
}
}