leetcode 102:rotate-image
题目描述
给出一个用二维矩阵表示的图像
返回该图像顺时针旋转90度的结果
扩展:
你能使用原地算法解决这个问题么?
题目分析:
可以将矩阵先通过右上左下对角线翻转,再沿水平线上下翻转。如下图所示:
代码如下:
1 void rotate(vector<vector<int> > &matrix) { 2 int m = matrix.size(); 3 for(int i = 0;i<m;i++) 4 for(int j = 0;j<m-i;j++) 5 swap(matrix[i][j], matrix[m-1-j][m-1-i]); 6 for(int i = 0;i < m/2;i++) 7 for(int j = 0;j < m;j++) 8 swap(matrix[i][j],matrix[m - 1- i][j]); 9 }