2014-02-14 121 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