• leetcode 48. 旋转图像


    思路 1 通过数组下标进行计算

    先沿着竖直方向中心线翻转+再沿着主对角线翻转

    代码:

    class Solution {
    public:
        void rotate(vector<vector<int>>& matrix) {
            int len = matrix.size();
            //先进行行以中间线进行翻转
            for(auto & num :matrix)
            {
                reverse(num.begin(),num.end());
            }
            for(int i =0;i<len;i++)
            {
                for(int j = 0;j<=len-1-i;j++)
                {
                    swap(matrix[i][j] , matrix[len-1-j][len-1-i]); //沿着负对角线翻转
                }
            }
        }
    };

    思路2 

    先进行行列转换,对转换后的矩阵沿着中心线进行左右翻转\
    后面一一步可使用reverse函数解决

    代码

    class Solution {
    public:
        void rotate(vector<vector<int>>& matrix) {
        int len = matrix.size();
        for(int i = 0;i<len;i++)
        {
            for(int j = 0;j<i;j++)
            {
                swap(matrix[i][j],matrix[j][i]); //
            }
        }
        for (auto & num:matrix)
        {
            reverse(num.begin(),num.end()); //对每一行进行交换
        }
        }
    };
    以大多数人努力程度之低,根本轮不到去拼天赋~
  • 相关阅读:
    java发送qq邮件
    HTTP3次握手和4次挥手
    Bootstrap面试题
    Bootstrap
    响应式布局
    JQuery思维导图
    JQuery相关知识点和面试题
    CSS思维导图
    前端面试题
    CSS3实现跑马效果
  • 原文地址:https://www.cnblogs.com/gcter/p/15338613.html
Copyright © 2020-2023  润新知