我有一个带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数组中的引用数量本身包含数组。那么有没有办法在没有迭代的情况下获得计数?
答案 0 :(得分:53)
如果保证每行的长度相同,只需使用:
int rows = matrix.length;
int cols = matrix[0].length; // assuming rows >= 1
(在数学方面,这当然是有保证的,但在大多数语言中很可能有一个数组数组,其中内部数组不所有相同的长度)。
答案 1 :(得分:4)
int row = mat.length;
int col= mat[0].length;
大多数在数组中所有行都有相同的长度。因此,上述解决方案几乎每次都有效。