日野弥生:勉強しよう

LeetCode 48 - 旋转图像

发表于2024年12月15日

#数组 #数学 #矩阵

先通过观察得出矩阵翻转的表达式变化: $M_{i,j} \Rightarrow M_{j,(n-i-j)};$

为了满足题目要求(无需新增空间,直接原地修改矩阵),所以需要对矩阵进行转置后平行翻转,即: $ M_{i,j} \Rightarrow M_{j,i} ; M_{j,i} \Rightarrow M_{j,(n-i-j)}; $

注意
class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        for(int i = 0;i<matrix.size();i++)
        {
            for(int j = i;j< matrix[i].size();j++)
            {
                std::swap(matrix[i][j],matrix[j][i]);
            }
        }

        for(auto& iter: matrix)
            std::reverse(iter.begin(), iter.end());

    }
};

フラッシュタブ:LeetCode

题目链接:https://leetcode-cn.com/problems/rotate-image/

上一篇

LeetCode 56 - 合并区间

下一篇

LeetCode 73 - 矩阵置零