在执行转置操作时,应该只遍历矩阵的上三角或下三角部分,全遍历相当于没转置!!!
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
int n = matrix.size();
int tmp;
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n; j++) { // 这里j一定不能赋值为0
tmp = matrix[j][i];
matrix[j][i] = matrix[i][j];
matrix[i][j] = tmp;
}
}
for (int i = 0; i < n; i++) {
int left = 0, right = n-1;
while (left < right) {
swap(matrix[i][left++], matrix[i][right--]);
}
}
}
};