LeetCode 面试题 01.07. - 旋转矩阵

题目描述

面试题 01.07. 旋转矩阵

解法:大风车(C++)

详细参考 C++ 图解原地操作,击败双百!(●ˇ∀ˇ●)

class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        int n = matrix.size();
        if(!n) return;
        int r = (n>>1)-1; // 左上角区域的最大行下标
        int c = (n-1)>>1; // 左上区域的最大列下标
        for(int i=r;i>=0;i--)
        {
            for(int j=c; j>=0;j--)
            {
                swap(matrix[i][j], matrix[j][n-i-1]);
                swap(matrix[i][j], matrix[n-i-1][n-j-1]);
                swap(matrix[i][j], matrix[n-j-1][i]);
            }
        }
    }
};
发布了176 篇原创文章 · 获赞 32 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_38204302/article/details/105388362