📅  最后修改于: 2023-12-03 14:53:54.290000             🧑  作者: Mango
本程序将输入的矩阵进行 180 度旋转后输出,是一个轻巧的实用工具,非常适合需要编写批量处理矩阵的程序员使用。
将以下代码粘贴至您的 Java 代码文件中,即可开始使用:
public static int[][] rotateMatrix(int[][] matrix) {
int row = matrix.length;
int col = matrix[0].length;
int[][] newMatrix = new int[row][col];
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
newMatrix[row - i - 1][col - j - 1] = matrix[i][j];
}
}
return newMatrix;
}
将需要处理的矩阵作为参数传入 rotateMatrix()
方法中,方法将返回旋转后的新矩阵。
程序接受的矩阵为一个二维数组 matrix
,格式为:
int[][] matrix = {
{a11, a12, a13, ...},
{a21, a22, a23, ...},
{a31, a32, a33, ...},
...
};
其中 aij
即为矩阵的第 i
行第 j
列元素。
程序返回的矩阵为一个二维数组 newMatrix
,格式与输入矩阵相同。
程序实现的核心代码为:
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
newMatrix[row - i - 1][col - j - 1] = matrix[i][j];
}
}
该代码通过遍历原矩阵,并将每一个元素赋值给旋转后的新矩阵对应位置,实现了矩阵的旋转。
以下为示例代码,演示了如何使用本程序将一个 $3 \times 3$ 矩阵旋转 180 度:
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int[][] newMatrix = rotateMatrix(matrix);
// 输出新矩阵
for (int[] row : newMatrix) {
for (int num : row) {
System.out.print(num + " ");
}
System.out.println();
}
程序将输出以下内容:
9 8 7
6 5 4
3 2 1
本程序适用于 $n \times n$ 的正方形矩阵旋转,对于 $m \times n$ 的长方形矩阵,可先将其转化为 $n \times n$ 的正方形矩阵再进行旋转处理。
本程序保留了输入矩阵的原地址,在返回的新矩阵中修改了原地址的值,因此输入矩阵会同时被修改,使用前请确保已备份原矩阵。