题目: 旋转图像

来自智得网
跳转至: 导航、​ 搜索

分析

因为交换过程中需要存储一些被交换位置的值。

最简单的方法是记录这个矩阵完整的值,然后计算每个位置的数据在旋转之后的新位置,然后将该数据放到新位置即可。

题解

public class Solution{
    public void solute(int[][] matrix) {
        int n = matrix.length;
        for (int row = 0; row < n / 2; row++) {
            for (int col = 0; col < (n + 1) / 2; col++) {
                int tmp = matrix[row][col];
                matrix[row][col] = matrix[n - col - 1][row];
                matrix[n - col - 1][row] = matrix[n - row - 1][n - col - 1];
                matrix[n - row - 1][n - col - 1] = matrix[col][n - row - 1];
                matrix[col][n - row - 1] = tmp;
            }
        }
    } 
}