力扣100(20)旋转图像

翻转法:

1.核心思想:顺时针旋转90度 = 先上下水平翻转 再沿主对角线翻转。

2.两部操作详解:

第一步:水平翻转:矩阵沿着水平中线对折。只需要遍历矩阵的上半部分,然后和下半部分行交换即可。m[i][j] --m[n-1-i][j] 这二者互换。

第二步:沿主对角线翻转:m[i][j] ---m[j][i].只需要遍历主对角线的左下角的元素

cpp 复制代码
class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        //整体思路 先水平翻转 再 主对角线翻转

        int r = matrix.size();//行数
        int l = matrix[0].size();



        //水平对折
        for(int i = 0;i<((r/2));i++){//遍历一半的行数
            for(int j = 0;j<l;j++){//列
                //交换
            swap(matrix[i][j], matrix[l - i - 1][j]);
            }
        }    

        //主对角线交换
        for(int i = 1;i<r;i++){

            for(int j=0;j<i;j++){
               swap(matrix[i][j], matrix[j][i]);
            }
        }    
          
    
        }

};
相关推荐
z200509302 小时前
每日简单算法题——————跟着卡尔
算法
️是783 小时前
信息奥赛一本通—编程启蒙(3395:练68.3 车牌问题)
数据结构·c++·算法
Liangwei Lin3 小时前
LeetCode 118. 杨辉三角
算法·leetcode·职场和发展
计算机安禾3 小时前
【c++面向对象编程】第24篇:类型转换运算符:自定义隐式转换与explicit
java·c++·算法
鼠鼠我(‘-ωก̀ )好困3 小时前
leetGPU
算法
我星期八休息3 小时前
Linux系统编程—基础IO
linux·运维·服务器·c语言·c++·人工智能·算法
池塘的蜗牛3 小时前
A Low-Complexity Method for FFT-based OFDM Sensing
算法
故事和你914 小时前
洛谷-【图论2-1】树5
开发语言·数据结构·c++·算法·动态规划·图论
咖啡里的茶i4 小时前
视觉显著目标的自适应分割与动态网格生成算法研究
人工智能·算法·目标跟踪
paeamecium5 小时前
【PAT甲级真题】- String Subtraction (20)
数据结构·c++·算法·pat考试·pat