原题
思路
- 矩阵旋转90度可以分成两步,先将列对调(0和m-
- 1,0和m-2…),再让所有元素绕从左上到右下的对角线交换元素(matrix[i][j]与matrix[j][i]),就可以得到顺时针旋转90度的矩阵
代码
class Solution {
public:
void rotate(vector<vector>& matrix) {
int m = matrix.size(), n = matrix[0].size();
int i = 0, j = m - 1;
while (i < j) swap(matrix[i++], matrix[j–]);
for (i = 0; i < m; i++) {
for (j = i+1 ; j < n; j++) swap(matrix[i][j], matrix[j][i]);
}
return;
}
};
运行截图
收获
- 线性代数+观察