我有一个简单的问题,我已经多次尝试白板但仍然无法理解。为什么对于内部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; } }}
1 回答
哈士奇WWW
TA贡献1799条经验 获得超6个赞
您只需交换矩阵的上三角形或下三角形一次。
1 2 3
4 5 6
7 8 9
你考虑 2、3、6 并分别与 4、7、8 交换。对角线不需要交换。因此你并不总是从 0 开始。
添加回答
举报
0/150
提交
取消