LeetCode48——Rotate Image

本文提供了一种解决LeetCode 48题——旋转图像的方法。通过构造一个与原矩阵相同的临时矩阵,然后将每个元素按90度旋转后的对应位置赋值给原矩阵,实现了矩阵的旋转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LeetCode48——Rotate Image

将二维矩阵向右旋转90度。

例如

[a00 a01 a02 ; a10  a11  a12 ; a20  a21  a22]

变成:

[a20 a10  a00 ; a21  a11  a01 ; a22 a12  a02]

简单分析一下就是:

第n列变成了第n行,并且每一列内部顺序颠倒过来。


一开始想着怎么交换元素。后来发现困难重重,索引采取了一个简单的办法:

用给定二维数组构造一个一模一样的二维数组,

将这个新构造的二维数组相应位置的value直接赋值给原来的二维数组即可。

代码:

class Solution {

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值