为了账号安全,请及时绑定邮箱和手机立即绑定

如何从左上角到右下角对角地迭代二维数组

如何从左上角到右下角对角地迭代二维数组

守着一只汪 2022-06-23 17:40:06
我正在尝试为从左上角到右下角的所有对角线迭代一个方形二维数组。我有从左下角到右上角迭代的代码,但我需要调整它以另一种方式迭代。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();

        }

}


查看完整回答
反对 回复 2022-06-23
  • 1 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信