对数组index的判断要放前面,要不然报数组越界异常。
import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 判断岛屿数量* @param grid char字符型二维数组 * @return int整型*/public void dfs(char[][] grid, int i, int j){int n = grid.length;int m = grid[0].length;grid[i][j] = '0';if(i - 1 >= 0 && grid[i-1][j] == '1')//上dfs(grid, i-1, j);if(i + 1 < n && 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 < m && grid[i][j+1] == '1')//右dfs(grid, i, j+1);}public int solve (char[][] grid) {// write code hereint n = grid.length;if(n == 0) return 0;int m = grid[0].length;int count = 0;for(int i = 0; i < n; i++){for(int j = 0; j < m; j++){if(grid[i][j] == '1'){count++;dfs(grid, i , j);}}}return count;}
}