public class number_of_islands {
public static void main(String[] args) {
number_of_islands tester = new number_of_islands();
char[][] testData = {{'1', '1', '1', '1', '0'},
{'1', '1', '0', '1', '0'},
{'1', '1', '0', '0', '0'},
{'0', '0', '0', '0', '0'}};
System.out.println(tester.numIslands(testData));
}
public int numIslands (char[][] grid) {
if (grid == null || grid.length == 0) {
throw new IllegalArgumentException("Invalid argument");
}
int res = 0;
for (int i = 0; i < grid.length; i++) {
for (int j = 0; i < grid[i].length; j++) {
if ((grid[i][j] == '0')
/* the line below is where the above error occurs */
||((i > 0) && (grid[i - 1][j] == '1'))
|| ((j > 0) && (grid[i][j - 1] == '1'))) {
continue;
}
res++;
}
}
return res;
}
}
上記のコードでは、numIslands関数は2-d配列を入力として受け取り、何かを計算しますが、コメントの下の行に配列外のエラーがあります。とj> 0、なぜまだそこに質問?なぜこのプログラムを実行しようとすると(java.lang.ArrayIndexOutOfBoundsException:5)例外がありますか?
ありがとうございます!
た作りi
RealSkeptic
ありがとう、私はそれを実現します。 –