2010-10-21 60 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]; 
}