Leetcode练习(Python):数组类:第48题:给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。

题目:
给定一个 n × n 的二维矩阵表示一个图像。  将图像顺时针旋转 90 度。  说明:  你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 
思路:
矩阵的转置,两次转动法(做题时状态不好,做了很长时间)
程序:
class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        row = len(matrix)
        column = len(matrix[0])

        if row <= 0 and column <= 0:
            return matrix

        for index1 in range(row):
            for index2 in range(column - index1):
                temp_data = matrix[index1][index2]
                matrix[index1][index2] = matrix[row - index2 - 1][column - index1 - 1]
                matrix[row - index2 - 1][column - index1 - 1]= temp_data

        for index3 in range(row // 2):
            for index4 in range(column):
                temp_data1 = matrix[index3][index4]
                matrix[index3][index4] = matrix[row - index3 - 1][index4]
                matrix[row - index3 - 1][index4] = temp_data1

猜你喜欢

转载自www.cnblogs.com/zhuozige/p/12734949.html