class Solution {
public int numIslands(char[][] grid
) {
if (grid
.length
== 0 || grid
[0].length
== 0)
return 0;
int cnt
= 0;
for (int i
= 0; i
< grid
.length
; i
++) {
for (int j
= 0; j
< grid
[0].length
; j
++) {
if (grid
[i
][j
] == '1') {
cnt
++;
dfs(grid
, i
, j
);
}
}
}
return cnt
;
}
private void dfs(char[][] grid
, int i
, int j
) {
if (i
< 0 || j
< 0 || i
>= grid
.length
|| j
>= grid
[i
].length
|| grid
[i
][j
] != '1')
return;
grid
[i
][j
] = '0';
dfs(grid
, i
- 1, j
);
dfs(grid
, i
+ 1, j
);
dfs(grid
, i
, j
- 1);
dfs(grid
, i
, j
+ 1);
}
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-11042.html