200. 岛屿数量
感觉判断条件还是写入进函数的时候不容易出错
class Solution {
int[] X = {0,0,-1,1};
int[] Y = {1,-1,0,0};
public int numIslands(char[][] grid) {
int num = 0;
for(int i=0;i<grid.length;i++) {
for(int j=0;j<grid[0].length;j++) {
if(grid[i][j] == '1') {
dfs(grid, i, j);
num++;
}
}
}
return num;
}
public void dfs(char[][] grid, int x, int y) {
if(x < 0 || x>=grid.length || y<0 || y>=grid[0].length || grid[x][y] != '1') {
return;
}
grid[x][y] = '0';
for(int i=0;i<4;i++) {
int xn = x + X[i];
int yn = y + Y[i];
dfs(grid, xn, yn);
}
}
}
网友评论