1. 程式人生 > >旋轉圖像---簡單

旋轉圖像---簡單

() 不出 nbsp 上下 表示 public for ++ 輸入

題目:

  給定一個 n × n 的二維矩陣表示一個圖像。將圖像順時針旋轉 90 度。

示例:

給定 matrix = 
[
  [1,2,3],
  [4,5,6],
  [7,8,9]
],

原地旋轉輸入矩陣,使其變為:
[
  [7,4,1],
  [8,5,2],
  [9,6,3]
]

思路:

  這道題我實在是想不出來,查了一下數學原理:上下翻轉,沿對稱軸變換即可,如下:

class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        int n=matrix[0
].size(); for(int i=0;i<n/2;i++) for(int j=0;j<n;j++) { std::swap(matrix[i][j],matrix[n-1-i][j]); } for(int i=0;i<n;i++) for(int j=i;j>=0;j--) { std::swap(matrix[i][j],matrix[j][i]); } } };

旋轉圖像---簡單