LeetCode 旋转矩阵 Python3
给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。
不占用额外内存空间能否做到?
分析
按题目思路写代码
1 2 3
4 5 6
7 8 9
13 互换 -> 19 互换 -> 17互换
……
换完就结束了
代码:
在这里插入代码片class Solution:
def rotate(self, matrix: List[List[int]]) -> None:
"""
Do not return anything, modify matrix in-place instead.
"""
n = len(matrix)-1
for i in range(0,n//2+1):
for j in range(i,n-i):
matrix[i][j],matrix[j][n-i] = matrix[j][n-i],matrix[i][j]
matrix[i][j],matrix[n-i][n-j] = matrix[n-i][n-j],matrix[i][j]
matrix[i][j],matrix[n-j][i] = matrix[n-j][i],matrix[i][j]
另一种思路:
对角线翻转+左右翻转