2010-10-21 61 views
-1

我有一個矩陣爪哇 - 遍歷一個二維矩陣diagnoally,上方和左

0 0 0 0 0 
0 1 1 2 1 
0 1 1 2 2 
0 1 1 2 3 

所以現在我想了解如何執行以下

首先去右下角挑然後選擇{2},但是因爲直接在對角線2上方的no也是2.我想要創建兩個指針來保持對角線的軌跡,並且其他爲以上。

我已經得到了對角線代碼來運行,但直接上面的代碼不起作用。你能幫我一些想法嗎?

+0

#1:那看起來不像是一個2D矩陣:它看起來像li關於1d陣列。 #2:您可以發佈代碼片段,以便我們可以更好地瞭解您正在嘗試做什麼? – 2010-10-21 21:04:49

+0

我們可以看到你的代碼嗎? – Starkey 2010-10-21 21:04:56

+0

Java中沒有指針(如int * p =&i;)。這是你的意思嗎? – 2010-10-21 21:07:17

回答

1

您可能遇到或可能沒有遇到的問題是,左上角的元素沒有上面的元素(數組索引超出範圍例外)。下面的代碼將橫向的方矩陣,並提取出的值假定矩陣上述對角線值被strored作爲雙打的2D陣列與所述第一指數代表行和第二表示柱:

double[] values = new double[matrix.length-1]; 
for (int i = matrix.length - 1; i > 0; i --) { 
    value[i-1] = matrix[i-1][i]; 
} 

這將保存這些值,使得value[0]處的項目位於第0行第1列中。如果要使數組相反,以便value[0]處的項目是倒數第二行和最後一列的項目(直接在右下方的上方元素,下面的代碼應該工作:

double[] values = new double[matrix.length-1]; 
for (int i = matrix.length - 1; i > 0; i --) { 
    value[matrix.length - i - 1] = matrix[i-1][i]; 
}