leetcode 48. 旋转图像

本文探讨了一种解决二维矩阵旋转问题的算法,重点在于只能在现有矩阵上进行元素交换,通过水平和对角线翻转实现旋转。作者提供了C++代码示例,适用于面试或算法练习中遇到的此类问题。

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

题解

其实算是思维题?
如果题目不说只在这个矩阵上来用完全可以在开辟一个矩阵来进行填充
所以这道题的难点就在于只能在这个矩阵上进行交换
所以只能进行矩阵里元素的交换而不能进行操作等。
然后就想
如何进行交换呢
然后就要分步骤进行交换
思路:先上下进行水平翻转然后在进行对角线翻转即可。
可以尝试一下
然后记住就可,其他的翻转也可按照相同的思路进行。

代码

class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        int r = matrix.size();
        int c = matrix[0].size();
        //先水平翻转
        for(int i = 0; i < r/2; i++){
            swap(matrix[i],matrix[r - i - 1]);
        }
        for(int i = 0; i < r; i++){
            for(int j = 0; j < i; j++){
                swap(matrix[i][j],matrix[j][i]);
            }
        }
    }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值