📅  最后修改于: 2023-12-03 15:16:37.859000             🧑  作者: Mango
本文将介绍一个Java程序,它可以将矩阵除对角线以外的元素顺时针旋转K次90度。程序使用Java语言编写,并返回一个markdown格式的说明文档。下面是完整的代码片段。
import java.util.Arrays;
public class MatrixRotation {
public static int[][] rotateMatrix(int[][] matrix, int k) {
int n = matrix.length;
int m = matrix[0].length;
// 创建一个新的矩阵来存储旋转后的元素
int[][] rotatedMatrix = new int[n][m];
// 对矩阵进行K次旋转
for (int rotate = 0; rotate < k; rotate++) {
// 顺时针旋转矩阵元素
for (int i = 0; i < n / 2; i++) {
for (int j = i; j < m - i - 1; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[n - 1 - j][i];
matrix[n - 1 - j][i] = matrix[n - 1 - i][m - 1 - j];
matrix[n - 1 - i][m - 1 - j] = matrix[j][m - 1 - i];
matrix[j][m - 1 - i] = temp;
}
}
}
return rotatedMatrix;
}
public static void main(String[] args) {
int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int k = 2;
int[][] rotatedMatrix = rotateMatrix(matrix, k);
// 打印旋转后的矩阵
for (int[] row : rotatedMatrix) {
System.out.println(Arrays.toString(row));
}
}
}
该程序实现了以下功能:
rotateMatrix(matrix, k)
方法,传入矩阵和旋转次数作为参数。Arrays.toString()
方法打印旋转后的矩阵。下面是一个示例:
int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int k = 2;
int[][] rotatedMatrix = rotateMatrix(matrix, k);
for (int[] row : rotatedMatrix) {
System.out.println(Arrays.toString(row));
}
输出结果将是:
[4, 1, 2]
[7, 8, 3]
[6, 9, 5]
这是矩阵顺时针旋转2次90度后的结果。
希望本文介绍的Java程序能够帮助你顺时针旋转矩阵元素。如果你有任何问题,欢迎提问!