leetcode48 旋转图像

这道题只需要搞明白矩阵位置跳转逻辑即可,首选是反着赋值,只花费额外变量存储第一个值即可,然后弄清跳转过程。

class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        if(matrix.empty()&&matrix[0].empty())
        {
            return;
        }
        int n=matrix.size();
        int i;
        for(i=0;i<n/2;i++)
        {
            rot(matrix,i,i,n-1-i,n-1-i);
        }
        
    }
    void rot(vector<vector<int>>& matrix,int a,int b,int c,int d)
    {
        int i;
        for(i=0;i<d-b;i++)
        {
            int temp=matrix[a][b+i];
            matrix[a][b+i]=matrix[c-i][b];
            matrix[c-i][b]=matrix[c][d-i];
            matrix[c][d-i]=matrix[a+i][d];
            matrix[a+i][d]=temp;
        }
    }
};
原文地址:https://www.cnblogs.com/legendcong/p/12491380.html