2014-02-14 54 views
0
public static int[][] add2DArrays(int[][]A, int[][]B) { 
     return int[][] C; 
} 

我明白如何通过添加两个阵列A & B的总和来填充该新的数组的,所述我所面对的路障就是创建这个初始数组C.我们不能假定数组的大小作为参数给出,所以这是我遇到的问题。创建新的2D阵列2D阵列的=大小1个+大小2D阵列2(行和列)

我知道这样做:

int[][] C = new int[A.length+B.length][]; //this will only give me the # of rows; 

我停留在如何让列的适当长度的新数组中的行。我认为有可能如何记录A中最长的一行的长度,然后记录B中最长的一行,并选择两者中较大的一个,但这看起来很麻烦而且效率低下。谢谢大家的支持。

+0

您是否尝试创建一个数组,其中列数是“A”和“B”之间的最大列数,或者您是否尝试创建列数为* sum * 'A'和'B'中的列数?你的问题很混乱。 – ajb

+0

如果没有提交,我不能按这个网址输入 – JD112

+0

想想矩阵。目标是将矩阵A和矩阵B添加到新的矩阵C中。我们不知道输入矩阵的大小。 – JD112

回答

1

如果两者真的二维数组 - 也就是,所有行的长度是一样的 - 和行0实际上是分配的,你可以从A[0].length+B[0].length

如果得到一个排的长度总和行的长度可能会有所不同 - 这在Java中是完全合法的 - 那么您可能需要遍历A和B来查找最长的行并使用该长度。

+0

您也可以创建一个只包含行大小的数组,并单独计算每一行的列大小 – vbazaga86

+0

谢谢感谢我的反馈 – JD112

+0

@ vbazaga86 - 考虑到这一点,但我没有认为符合原始请求。我可能误解了它。 – keshlam