【发布时间】:2019-07-10 12:55:15
【问题描述】:
我正在尝试为从左上角到右下角的所有对角线迭代一个方形二维数组。我有从左下角到右上角迭代的代码,但我需要调整它以另一种方式迭代。
public static void main(String[] args) {
int[][] a = {
{1, 2, 3, 4},
{0, 1, 2, 3},
{-1, 0, 1, 2},
{-2, -1, 0, 1},
};
for (int j = 0; j <= a.length + a.length - 2; j++) {
for (int k = 0; k <= j; k++) { // cols
int l = j - k; // rows
if (l < a.length && k < a.length) {
System.out.print(a[l][k] + " ");
}
}
System.out.println();
}
}
结果是:
1
0 2
-1 1 3
-2 0 2 4
-1 1 3
0 2
1
这是从左下角到右上角的对角线。 如何调整该方法以另一种方式打印对角线以产生以下结果:
-2
-1 -1
0 0 0
1 1 1 1
2 2 2
3 3
4
感谢您的帮助。
【问题讨论】:
-
如 int l = a.length-1; ?
-
在更新代码后移至正确答案。不,作为“L = a.lenght - L”,还有一个单字母变量不好的例子:)
标签: java arrays matrix diagonal