题解
其实算是思维题?
如果题目不说只在这个矩阵上来用完全可以在开辟一个矩阵来进行填充
所以这道题的难点就在于只能在这个矩阵上进行交换
所以只能进行矩阵里元素的交换而不能进行操作等。
然后就想
如何进行交换呢
然后就要分步骤进行交换
思路:先上下进行水平翻转然后在进行对角线翻转即可。
可以尝试一下
然后记住就可,其他的翻转也可按照相同的思路进行。
代码
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
int r = matrix.size();
int c = matrix[0].size();
//先水平翻转
for(int i = 0; i < r/2; i++){
swap(matrix[i],matrix[r - i - 1]);
}
for(int i = 0; i < r; i++){
for(int j = 0; j < i; j++){
swap(matrix[i][j],matrix[j][i]);
}
}
}
};