我的代码在eclipse中工作得非常好但在foobar控制台上抛出了愚蠢的例外... (它的第3级:prepare_the_bunnies_escape挑战)
public static int answer(int[][] mazearr) {
arrLen = mazearr.length;
int count=0;
int shortestPathLen = calShortestPath(mazearr);
int pathLen;
//This is the part which throws arrayIndexOutOfBoundsExcepiton
//--------------------------------------
for (int i1 = 0; i1 < arrLen; i1++)
for (int j1 = 0; j1 < arrLen; j1++)
if(mazearr[i1][j1]==5)
mazearr[i1][j1]=0;
//----------------------------------------
for (int i = 0; i < arrLen; i++) {
for (int j = 0; j < arrLen; j++) {
if(mazearr[i][j] == 1 && isRemovable(i,j, mazearr) &&
count<=5)
{
count++;
mazearr[i][j]=0;
pathLen = calShortestPath(mazearr);
shortestPathLen = (pathLen<shortestPathLen)?
pathLen:shortestPathLen;
mazearr[i][j]=1;
for (int i1 = 0; i1 < arrLen; i1++)
for (int j1 = 0; j1 < arrLen; j1++)
if(mazearr[i1][j1]==5)
mazearr[i1][j1]=0;
}
}
}
return shortestPathLen;
}
我想我错过了一些非常明显的事情......我做错了什么? 测试用例正在我的系统上运行,请以任何可能的方式帮助我。
答案 0 :(得分:0)
我在这里弄错了... 输入始终不是方阵。 我错误地认为这是因为它没有在问题陈述中指定。
for (int i1 = 0; i1 < arr.length ; i1++)
for (int j1 = 0; j1 < arr[0].length ; j1++)
{ if(arr[i1][j1]==5)
{ arr[i1][j1]=0;}}