Java 如何从左上角到右下角对角迭代二维数组
我试图从左上到右下迭代所有对角线的二维正方形数组。我有从左下角到右上角迭代的代码,但我需要对其进行调整,使其也以另一种方式进行迭代Java 如何从左上角到右下角对角迭代二维数组,java,arrays,matrix,diagonal,Java,Arrays,Matrix,Diagonal,我试图从左上到右下迭代所有对角线的二维正方形数组。我有从左下角到右上角迭代的代码,但我需要对其进行调整,使其也以另一种方式进行迭代 public static void main(String[] args) { int[][] a = { {1, 2, 3, 4}, {0, 1, 2, 3}, {-1, 0, 1, 2}, {-2,
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();
}
}
这是从左下角到右上角的对角线。
我如何调整该方法以另一种方式打印对角线,以产生以下结果:
-2
-1 -1
0 0 0
1 1 1 1
2 2 2
3 3
4
谢谢您的帮助。只需镜像行地址即可
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();
}
}
如int l=a.length-1?移动到正确答案并更新代码。不,当L=a.lenght-L时,又有一个单字母变量不好的例子:
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();
}
}