for (int i=0; i<matrix.length; i++) {
for (int j=0; j<matrix[i].length; j++) {
Обратите внимание на i
, который я добавил.
Однако лучше всего кешировать обе длины во время цикла, чтобы избежать переоценки на каждом цикле, что экономит время только за счет еще одного int
в памяти (исправление сохраняется):
for (int i=0, il=matrix.length; i<il; i++) {
for (int j=0, jl=matrix[i].length; j<jl; j++) {