Java 矩阵逆时针旋转函数实现
以下是一个 Java 函数,用于逆时针旋转一个 n×n 矩阵指定次数(每次旋转 90 度):
public class Main {
public static void main(String[] args) {
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
}; // 示例输入矩阵
int rotateTimes = 3; // 旋转次数
int[][] rotatedMatrix = rotateMatrix(matrix, rotateTimes);
printMatrix(rotatedMatrix);
/*
输出:
3 6 9
2 5 8
1 4 7
*/
}
public static int[][] rotateMatrix(int[][] matrix, int rotateTimes) {
int n = matrix.length;
// 逆时针旋转指定次数
for (int k = 0; k < rotateTimes; k++) {
// 旋转每个圈
for (int i = 0; i < n / 2; i++) {
for (int j = i; j < n - i - 1; j++) {
// 交换对应的四个元素
int temp = matrix[i][j];
matrix[i][j] = matrix[j][n - i - 1];
matrix[j][n - i - 1] = matrix[n - i - 1][n - j - 1];
matrix[n - i - 1][n - j - 1] = matrix[n - j - 1][i];
matrix[n - j - 1][i] = temp;
}
}
}
return matrix;
}
public static void printMatrix(int[][] matrix) {
int n = matrix.length;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
}
在 rotateMatrix 函数中,我们使用两层循环来遍历每个圈,并通过交换对应的四个元素来实现逆时针旋转 90 度。外层循环迭代的次数为旋转次数,内层循环用于遍历每个圈的元素。通过不断交换对应的元素,我们可以将矩阵进行逆时针旋转。最终,函数返回旋转后的矩阵。
printMatrix 函数用于打印矩阵,方便验证旋转结果。示例输入矩阵和旋转次数已在代码中硬编码,您可以根据需要修改输入矩阵和旋转次数。
原文地址: https://www.cveoy.top/t/topic/CVA 著作权归作者所有。请勿转载和采集!