Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从左上角到右下角对角迭代二维数组_Java_Arrays_Matrix_Diagonal - Fatal编程技术网

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();
        }
}