【发布时间】:2017-10-19 04:24:20
【问题描述】:
这是我正在尝试运行的一段代码:
public int numIslands(char[][] grid) {
if(grid==null)
return 0;
else
{
int count=0;
gridtemp=grid; // gridtemp is a global character array
visited=new boolean[grid.length][grid[0].length]; //****ERROR******
for(int i=0;i<grid.length;i++)
{
for(int j=0;j<grid[0].length;j++)
{
if(IslandCount(i,j)>1)
count++;
}
}
System.out.println(count);
return count;
}
}
此代码抛出错误 java.lang.ArrayIndexOutOfBoundsException: 0 如上面代码 sn-p 所示
【问题讨论】:
-
即使
grid不是null,也可以是空的,即grid.length == 0。在这种情况下,grid[0]将抛出ArrayIndexOutOfBoundsException。 -
添加visited的定义
-
问题是当
grid为空时,没有grid[0]这样的东西。空和空不是一回事。 (换句话说,亚历克斯是对的,但打字速度比我快。戴夫给了你一个红鲱鱼)。 -
你声明
char visited[][]了吗?
标签: java arrays indexoutofboundsexception