以下是一个 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 函数用于打印矩阵,方便验证旋转结果。示例输入矩阵和旋转次数已在代码中硬编码,您可以根据需要修改输入矩阵和旋转次数。

Java 矩阵逆时针旋转函数实现

原文地址: https://www.cveoy.top/t/topic/CVA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录