48. 旋转图像

这题可以将一个矩阵从外向内旋转,把一个矩阵看成一圈圈的框,将一个框拆成四条边,如下图所示,对于一个边长为n的矩阵,最多有n/2个框,对于奇数n来说,最后中心的一个点是不需要旋转的,旋转的规则看下面代码,这没有其他的办法只有仔细的思考


class Solution
{
public:
    void rotate(vector<vector<int>> &matrix)
    {
        for (int i = 0; i < matrix.size() / 2; i++)
        {
            // 交换四条边框
            for (int j = 0; j < matrix.size() - 1 - 2 * i; j++)
            {
                int temp;
                temp = matrix[j + i][i];
                // 下->左
                matrix[j + i][i] = matrix[matrix.size() - 1 - i][j + i];
                // 右->下
                matrix[matrix.size() - 1 - i][i + j] = matrix[matrix.size() - 1 - i - j][matrix.size() - 1 - i];
                // 上->右
                matrix[matrix.size() - 1 - i - j][matrix.size() - 1 - i] = matrix[i][matrix.size() - 1 - i - j];
                // 左->上
                matrix[i][matrix.size() - 1 - i - j] = temp;
            }
        }
    }
};

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 48. 旋转图像 遍历左上角的矩形中的元素,每次旋转其中一个,每次旋转点都要对四个点进行值的替换,通过找到这四个点...
    猫皮虎大人阅读 182评论 0赞 0
  • 【Description】给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你...
    Chiduru阅读 229评论 0赞 0
  • 【Description】 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: ...
    Chiduru阅读 237评论 0赞 0
  • 给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需...
    李伟13阅读 298评论 0赞 0
  • 更多精彩内容,请关注【力扣中等题】。 题目 难度:★★★☆☆类型:二维矩阵,几何方法:矩阵操作 给定一个 n × ...
    玖月晴阅读 845评论 0赞 0

友情链接更多精彩内容