首选对矩阵进行转置,然后首尾列交换顺序,直到中间列
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
for(size_t i = 0; i < matrix.size(); i++){
for(size_t j = i + 1; j < matrix[0].size(); j++){
swap(matrix[i][j], matrix[j][i]);
}
}
int left = 0, right = matrix.size() - 1;
while(left < right){
for(int i = 0; i < matrix.size(); i++){
swap(matrix[i][left], matrix[i][right]);
}
left++;
right--;
}
}
};