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配列の参照の数を意味するのは、行の数だと思います。繰り返しずにカウントを取得する方法はありますか?
各行の長さが同じであることが保証されている場合は、次を使用します。
int rows = matrix.length;
int cols = matrix[0].length; // assuming rows >= 1
(数学ではもちろんこれは保証されていますが、ほとんどの言語では、内部配列がnotすべて同じ長さの配列の配列を持つことはかなり可能です)。
int row = mat.length;
int col= mat[0].length;
ほとんどの配列では、すべての行の長さが同じです。したがって、上記のソリューションはほぼ毎回機能します。