岛屿数量
import java.util.*;
public class Solution {
/**
* 判断岛屿数量
* @param grid char字符型二维数组
* @return int整型
*/
static int ans = 0;
public int solve (char[][] grid) {
// write code here
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);
ans++;
}
}
}
return ans;
}
private static void dfs(char[][] grid, int i, int j) {
grid[i][j] = '0';
//向下走
if((i+1) < grid.length && grid[i+1][j] == '1') {
dfs(grid, i + 1, j);
}
//向上走
if((i-1) >= 0 && grid[i-1][j] == '1') {
dfs(grid, i - 1, j);
}
//向左走
if((j-1) >= 0 && grid[i][j-1] == '1') {
dfs(grid, i, j - 1);
}
//向右走
if((j+1) < grid[0].length && grid[i][j+1] == '1') {
dfs(grid, i, j + 1);
}
return;
}
}
这次的教训是。字符数组在比对时应该用’1’。但是我直接用了1,测试就不正确了。