今天看到一句话:
如果我爱自己,就会日出而作,日落而息。
这句话足足证明了我很爱自己,哈哈哈,回归正题,总结一下,写的这道数组题。
题目描述:将n*n的矩阵顺时针旋转九十度,求新数组(用c++写的)
我的思路是开一个新数组,存翻转后的,但是下面这个代码的空间,时间效率明显都比我高,借鉴之。
大佬的思路如下:
先将矩阵按对角线翻转,之后再上下翻转。
class Solution {
public:
void rotate(vector<vector<int> > &matrix) {
const int n=matrix.size();
for(int i=0;i<n;i++)
for(int j=0;j<n-i;j++)
swap(matrix[i][j],matrix[n-1-j][n-1-i]);
for(int i=0;i<n/2;i++)
for(int j=0;j<n;j++)
swap(matrix[i][j],matrix[n-1-i][j]);
}
};
这个方法确实很快,Get了