Google foobar arrayIndexOutOfBounds исключение для двумерного массива

Мой код прекрасно работает в eclipse, но выдает глупые исключения на консоли foobar... (это уровень 3:prepare_the_bunnies_escape challenge)

 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;
    }

Я думаю, что упускаю что-то очень очевидное... Что я делаю не так??? Тестовые случаи работают на моей системе, пожалуйста, помогите мне любым возможным способом.

1 ответ

Я понял свою ошибку здесь... Ввод не всегда квадратная матрица. Я ошибочно предположил, что это не было указано в постановке задачи.

 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;}}
Другие вопросы по тегам