classSolution:defrotate(self, matrix: List[List[int]])->None:"""
Do not return anything, modify matrix in-place instead.
"""
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):
l, r =0, n-1while l < r:
matrix[i][l], matrix[i][r]= matrix[i][r], matrix[i][l]
l +=1
r -=1
classSolution:defrotate(self, matrix: List[List[int]])->None:"""
Do not return anything, modify matrix in-place instead.
"""
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-j-1]= matrix[i][n-j-1], matrix[i][j]
Java
法1:基础好法
classSolution{publicvoidrotate(int[][] matrix){int n = matrix.length;int[][] newMatrix =newint[n][];for(int i =0;i < n;++i){
newMatrix[i]= matrix[i].clone();}for(int i =0; i < n;++i){for(int j =0; j < n;++j){
matrix[j][n -1- i]= newMatrix[i][j];}}}}