Ошибка выполнения матрицы Java
Письмо об упражнении:
Учитывая матрицу из m x n элементов (m строк, n столбцов), вернуть все элементы матрицы в спиральном порядке.
Например, учитывая следующую матрицу:
[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
You should return [1,2,3,6,9,8,7,4,5].
Данный код:
public class Solution {
public List<Integer> spiralOrder(int[][] matrix) {
}
}
Мой код:
public List<Integer> spiralOrder(int[][] matrix) {
if(matrix == null || (matrix.length == 0))
return new ArrayList<Integer>();
int arriba = 0;
int derecha = matrix[0].length - 1;
int abajo = matrix.length - 1;
int izquierda = 0;
List<Integer> retorno = new ArrayList<Integer>();
while(true)
{
for(int i = izquierda; i <= derecha; i++)
retorno.add(matrix[arriba][i]);
arriba++;
for(int i = arriba; i <= abajo; i++)
retorno.add(matrix[i][derecha]);
derecha--;
for(int i = derecha; i >= izquierda; i--)
retorno.add(matrix[abajo][i]);
abajo--;
for(int i = abajo; i >= arriba; i--)
retorno.add(matrix[i][izquierda]);
izquierda++;
if(izquierda >= derecha)
return retorno;
}
}
}
Ошибка:
Runtime Error Message:
Line 13: java.lang.ArrayIndexOutOfBoundsException: 1
Last executed input:
[[1,2,3,4,5,6,7,8,9,10]]
Какие-либо предложения? Я не могу сказать, что не так. Почему это за пределами? Упражнение можно найтиВот