旋轉圖像---簡單
阿新 • • 發佈:2019-01-24
() 不出 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]); } } };
旋轉圖像---簡單