Skip to content

Latest commit

 

History

History
39 lines (30 loc) · 1.19 KB

p0048M-rotate.md

File metadata and controls

39 lines (30 loc) · 1.19 KB

Problem: 48. 旋转图像

思路

1、先根据主对角线进行翻转,在上下垂直翻转,得到结果 2、东南西北每四个元素可以组成一个循环

解题方法

描述你的解题方法

Code1 对角线翻转 + 垂直翻转

class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        n = len(matrix)
        for i in range(n):
            for j in range(n-i):
                matrix[i][j],matrix[n-j-1][n-i-1] = matrix[n-j-1][n-i-1],matrix[i][j]

        for i in range(n//2):
            matrix[i],matrix[n-i-1] = matrix[n-i-1],matrix[i]

Code2 每四个元素可以组成一个循环(东南西北)

class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:
        n = len(matrix)
        for i in range(n // 2):
            for j in range((n + 1) // 2):
                matrix[i][j], matrix[n - j - 1][i], matrix[n - i - 1][n - j - 1], matrix[j][n - i - 1] \
                    = matrix[n - j - 1][i], matrix[n - i - 1][n - j - 1], matrix[j][n - i - 1], matrix[i][j]