zoukankan      html  css  js  c++  java
  • #leetcode刷题之路48-旋转图像

    给定一个 n × n 的二维矩阵表示一个图像。
    将图像顺时针旋转 90 度。
    说明:
    你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
    示例 1:
    给定 matrix =
    [
    [1,2,3],
    [4,5,6],
    [7,8,9]
    ],
    原地旋转输入矩阵,使其变为:
    [
    [7,4,1],
    [8,5,2],
    [9,6,3]
    ]
    示例 2:
    给定 matrix =
    [
    [ 5, 1, 9,11],
    [ 2, 4, 8,10],
    [13, 3, 6, 7],
    [15,14,12,16]
    ],
    原地旋转输入矩阵,使其变为:
    [
    [15,13, 2, 5],
    [14, 3, 4, 1],
    [12, 6, 8, 9],
    [16, 7,10,11]
    ]

     思路:

    先按对角线对称翻转,再按中线翻转

    #include <iostream>
    #include <vector>
    using namespace std;
    void rotate(vector<vector<int>>& matrix) {
        int len=matrix.size();
        for(int i=0;i<len;i++)
        {
            for(int j=i+1;j<len;j++)
            {
                int temp = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = temp;
            }
        }
        for(int i=0; i<len; i++)
        {
            for(int j=0; j<len/2; j++)
            {
                int temp = matrix[i][j];
                matrix[i][j] = matrix[i][len-1-j];
                matrix[i][len-1-j] = temp;
            }
        }
    }
    
    int main() {
        vector<vector<int>> ans={{1,2,3},{4,5,6},{7,8,9}};
        rotate(ans);
        std::cout << ans[0][2] << std::endl;
        return 0;
    }
  • 相关阅读:
    Study Plan The Twelfth Day
    Study Plan The Fifteenth Day
    Study Plan The Seventeenth Day
    Study Plan The Tenth Day
    Study Plan The Eighth Day
    Study Plan The Eleventh Day
    Study Plan The Sixteenth Day
    Study Plan The Thirteenth Day
    Study Plan The Fourteenth Day
    Study Plan The Ninth Day
  • 原文地址:https://www.cnblogs.com/biat/p/10667132.html
Copyright © 2011-2022 走看看