美文网首页
48.旋转图像

48.旋转图像

作者: HITZGD | 来源:发表于2018-11-04 15:50 被阅读0次

思路
旋转分为两步:1、将矩阵转置,2、翻转当前行

#include <vector>
using namespace std;
class Solution {
public:
    void swap(int &a, int &b)
    {
        int temp;
        temp = a;
        a = b;
        b = temp;
    }
    void swapMatrix(vector<int>& line)
    {
        int n = line.size();
        for (int i = 0; i < n / 2; i++)
        {
            swap(line[i], line[n - i - 1]);
        }
    }
    /*先装置,然后翻转每行数字*/
    void rotate(vector<vector<int>>& matrix) {
        auto matSize = matrix.size();
        for (int i = 0; i < matSize; i++)
        {
            for (int j = i + 1; j < matSize; j++)
            {
                swap(matrix[i][j], matrix[j][i]);
                                //std::swap(matrix[i][j], matrix[j][i]);
            }
            swapMatrix(matrix[i]);
                        //reverse(matrix[i].begin(), matrix[i].end());
        }
    }
};

int main(int argc, char* argv[])
{
    vector<vector<int>> matrix = { {1 , 2, 3 ,4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16} };
    vector<int> line = { 1 , 2, 3 ,4 };
    Solution().swapMatrix(line);
    Solution().rotate(matrix);
    return 0;
}

相关文章

  • leetcode 48.图像旋转 及LCP 2. 黑白方格画

    48.图像旋转给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像...

  • LeetCode:48. 旋转图像简单思路求解

    题目:48. 旋转图像[https://leetcode-cn.com/problems/rotate-image...

  • LeetCodeDay06

    48. 旋转图像 描述 给定一个 n × n 的二维矩阵表示一个图像。 将图像旋转 90 度(顺时针)。 注意 你...

  • 48.旋转图像

  • 48. 旋转图像

    给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地 旋转图像,这意味着你...

  • 48. 旋转图像

    一、题目原型: 给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。 说明:你必须在原地旋转...

  • 48.旋转图像

    思路旋转分为两步:1、将矩阵转置,2、翻转当前行

  • 48. 旋转图像

    给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需...

  • 48. 旋转图像

    【Description】 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: ...

  • 48. 旋转图像

    【Description】给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你...

网友评论

      本文标题:48.旋转图像

      本文链接:https://www.haomeiwen.com/subject/sqarxqtx.html