48. Rotate Image

来源:互联网 发布:tgp检测网络环境异常 编辑:程序博客网 时间:2024/06/18 10:31

You are given an n x n 2D matrix representing an image.

Rotate the image by 90 degrees (clockwise).

Follow up:
Could you do this in-place?

Subscribe to see which companies asked this question.

A[0][0] -> A[0][3]A[1][0] -> A[0][2]

A[0][1] -> A[1][3]A[2][0] -> A[0][1]

A[0][2] -> A[2][3]A[3][0] -> A[0][0]

A[0][3] -> A[3][3] 

由此可得:对于n * n 的2维矩阵

A[i][j] -> A[j][n-1-i]


class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
    int i,j;
        int n = matrix.size();
        vector<vector<int> >tempMatrix = matrix;
        for(i = 0;i < n;i++){
            for(j = 0;j < n;j++){
                tempMatrix[j][n-1-i] = matrix[i][j];
            }//for
        }//for
        for(i = 0;i < n;i++){
            for(j = 0;j < n;j++){
                matrix[i][j] = tempMatrix[i][j];
            }//for
        }//for
    }
};
0 0