Подтвердить что ты не робот

Подсчет строк и столбцов двумерного массива без итерации на нем

У меня есть функция, которая принимает 2D-массив. Мне интересно, если в любом случае получить строки и столбцы 2D-массива без необходимости повторять его. Подпись метода не должна быть изменена.

Функция находится внутри класса ninetyDegRotator.

public static int [][] rotate(int [][] matrix){

    int [][] rotatedMatrix = new int[4][4];//need actual row n col count here
    return rotatedMatrix; //logic

}

И главный код

public static void main(String args[]){

    int [][] matrix = new int[][]{
            {1,2,3,4},
            {5,6,7,8},
            {9,0,1,2},
            {3,4,5,6}
    };

    System.out.println("length is " + matrix.length);
    int [][] rotatedMatrix = ninetyDegRotator.rotate(matrix);
} 

Также matrix.length дает мне 4. Поэтому я думаю, что это число строк, которое дает значение количества ссылок в массиве 1D, которые сами содержат массивы. Так есть способ получить счет без повторения?

4b9b3361

Ответ 1

Если он гарантирует, что каждая строка имеет одинаковую длину, просто используйте:

int rows = matrix.length;
int cols = matrix[0].length;  // assuming rows >= 1

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

Ответ 2

int row = mat.length;
int col= mat[0].length;

В основном в массиве все строки имеют одинаковую длину. Таким образом, решение будет работать почти каждый раз.