Java 方正转置问题

问题

对一个方阵转置,就是将原来的行号变称列号,列号变成行号
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

转置后
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16

即一个正方形矩阵 左上到右下的对角线上的行列一致 转置后依旧一致,其他元素对角互换位置

解题

    /**
     * 对一个方阵转置,就是将原来的行号变称列号,列号变成行号
     *  1  2  3  4
     *  5  6  7  8
     *  9 10 11 12
     * 13 14 15 16
     *
     * 转置后
     *  1  5  9 13
     *  2  6 10 14
     *  3  7 11 15
     *  4  8 12 16
     *
     *  即一个正方形矩阵 左上到右下的对角线上的行列一致 转置后依旧一致,其他元素对角互换位置
     */
    public static void matrixTurn(int[][] matrix){
        // 二维数组的行数 方阵的行数
        int length = matrix.length;

        // 每一行都需要遍历
        for (int i = 0; i < length; i++){
            // 每个对角的元素只需要转换一次 即如果为 4 个元素,则第一行从索引0开始做转换(即第一个元素),
            // 第二行则从索引1 开始转换(即第二个元素),第三行则从索引2开始转换(即第三个元素)
            for (int j = i; j < matrix[i].length; j++){
                int ele = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = ele;
            }
        }

        for (int i = 0; i < length; i++){
            for (int j = 0; j < matrix[i].length; j++){
                System.out.print(matrix[i][j] + " ");
            }
            System.out.println();
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值