📌  相关文章
📜  Java程序将除对角线以外的所有矩阵元素顺时针旋转K次90度(1)

📅  最后修改于: 2023-12-03 15:16:37.859000             🧑  作者: Mango

Java程序-矩阵元素顺时针旋转K次90度

本文将介绍一个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));
        }
    }
}
程序功能

该程序实现了以下功能:

  • 接受一个二维矩阵和旋转次数K作为输入。
  • 将矩阵除对角线以外的元素顺时针旋转K次90度。
  • 返回旋转后的矩阵。
使用方法
  1. 定义一个二维整数数组作为输入矩阵。
  2. 定义一个整数K,表示旋转次数。
  3. 调用rotateMatrix(matrix, k)方法,传入矩阵和旋转次数作为参数。
  4. 程序将返回一个二维整数数组,表示旋转后的矩阵。
  5. 可以使用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程序能够帮助你顺时针旋转矩阵元素。如果你有任何问题,欢迎提问!