classSolution { public: voidrotate(vector<vector<int>>& matrix){ int n = matrix.size(); for (int i = 0; i < n/2; ++i) { for (int j = 0; j < (n+1)/2; ++j) { int tmp = matrix[n-1-j][i]; matrix[n-1-j][i] = matrix[n-1-i][n-1-j]; matrix[n-1-i][n-1-j] = matrix[j][n-1-i]; matrix[j][n-1-i] = matrix[i][j]; matrix[i][j] = tmp; } } } };
翻转(c++)
classSolution { public: voidrotate(vector<vector<int>>& matrix){ int n = matrix.size(); for (int i = 0; i < n; ++i) { for (int j = i+1; j < n; ++j) { matrix[i][j] ^= matrix[j][i]; matrix[j][i] ^= matrix[i][j]; matrix[i][j] ^= matrix[j][i]; // swap(matrix[i][j], matrix[j][i]); } } for (int i = 0; i < n; ++i) { for (int j = 0; j < n/2; ++j) { matrix[i][j] ^= matrix[i][n-1-j]; matrix[i][n-1-j] ^= matrix[i][j]; matrix[i][j] ^= matrix[i][n-1-j]; // swap(matrix[i][j], matrix[i][n-1-j]); } } } };
旋转(python)
classSolution: defrotate(self, matrix: List[List[int]]) -> None: n = len(matrix) for i inrange(n//2): for j inrange((n+1)//2): tmp = matrix[n-1-j][i] matrix[n-1-j][i] = matrix[n-1-i][n-1-j] matrix[n-1-i][n-1-j] = matrix[j][n-1-i] matrix[j][n-1-i] = matrix[i][j] matrix[i][j] = tmp
翻转(python)
classSolution: defrotate(self, matrix: List[List[int]]) -> None: n = len(matrix) for i inrange(n): for j inrange(i+1, n): matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j] for i inrange(n): for j inrange(n//2): matrix[i][j], matrix[i][n-1-j] = matrix[i][n-1-j], matrix[i][j]