问题描述:
给出一个用二维矩阵表示的图像返回该图像顺时针旋转90度的结果
扩展:你能使用原地算法解决这个问题么?

思路:对于函数中的一个点,先以y=x为轴作对称,然后以x轴作对称,则相当于该点顺时针旋转90°。所以对于图像来说每个点顺时针旋转了,则图也旋转了。所以可以将图以对角线作对称,然后以中间的横线作对称。
来源于牛客来源自牛客
代码实现:
public class Solution {
    public void rotate(int[][] matrix) {
        int n = matrix.length;
        int[][] tmp = new int[n][n];
         
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n ; j++) {
                tmp[i][j] = matrix[n - 1 - j][i];
            }
        }
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n ; j++) {
                matrix[i][j] =  tmp[i][j];
            }
        }
    }
}