关于方阵转置的问题

我有一个简单的问题,我已经多次尝试白板但仍然无法理解。为什么对于内部for循环,我们必须设置column = row + 1; 我的印象是你应该初始化column = 0,然后简单地将行交换为列,将列交换为行以进行矩阵的转置,但我一直在测试用例中失败。谢谢



public static void transposeMatrix(int[][] matrix) {


    for (int row = 0; row < matrix.length; row++)

    {

        for (int column = row + 1 ; column < matrix.length; column++)

        {


            int temp = matrix[row][column];

            matrix[row][column] = matrix[column][row];

            matrix[column][row] = temp;


        }

    }


}


阿波罗的战车
浏览 124回答 1
1回答

哈士奇WWW

您只需交换矩阵的上三角形或下三角形一次。1 2 34 5 67 8 9你考虑 2、3、6 并分别与 4、7、8 交换。对角线不需要交换。因此你并不总是从 0 开始。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java