LeetCode面试题01.07.旋转矩阵【中】【Python】【数学】给你一张由N×N矩阵表示的图像,其中每个像素的大小为4字节。请设计一个算法将图像旋转90度。不占用额外的内存空间就可以做到吗?示例1:给定矩阵=[[1,2,3],[4,5,6],[7,8,9]],就地旋转输入矩阵,使其变为:[[7,4,1],[8,5,2],[9,6,3]]示例2:给定矩阵=[[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]],原地旋转输入矩阵,使其变为:[[15,13,??2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]思维数学先上下翻转镜面,再翻转主对角线时间复杂度:O(n^2)空间复杂度:O(1)Python3代码类解决方案:defrotate(self,matrix:List[List[int]])->None:"""不返回任何内容,就地修改矩阵。"""n=len(matrix)#首先上下镜像翻转foriinrange(n//2):forjinrange(n):matrix[i][j],matrix[n-1-i][j]=matrix[n-1-i][j],matrix[i][j]#再次翻转主对角线foriinrange(n):forjinrange(i):matrix[j][i],matrix[i][j]=矩阵[i][j],矩阵[j][i]GitHublinkPython
