旋转图像---简单
题目:
给定一个 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]); } } };