我正在尝试为从左上角到右下角的所有对角线迭代一个方形二维数组。我有从左下角到右上角迭代的代码,但我需要调整它以另一种方式迭代。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 -10 0 01 1 1 12 2 2 3 34谢谢你的帮助。
1 回答
慕仙森
TA贡献1827条经验 获得超7个赞
只需要镜像行地址
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
int mirror = a.lenght - l;
if (mirror >= 0 && mirror < a.length && k < a.length) {
System.out.print(a[mirror][k] + " ");
}
}
System.out.println();
}
}
添加回答
举报
0/150
提交
取消