NO48. 旋转图像

①沿对角线进行翻折

②每行就行反转

本质:除开对角线进行180°翻折,在每一行进行反转返回90°就可以达到反转90°的效果 

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

循环条件为pos1<pos2

class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        pos1,pos2 =0,len(matrix)-1
        while pos1<pos2:
            add = 0
            while add<pos2-pos1:
                #每四个就行一换
                temp = matrix[pos2-add][pos1]
                matrix[pos2-add][pos1] = matrix[pos2][pos2-add]
                matrix[pos2][pos2-add] = matrix[pos1+add][pos2]
                matrix[pos1+add][pos2] = matrix[pos1][pos1+add]
                matrix[pos1][pos1+add] = temp
                add+=1
            pos1+=1
            pos2-=1

 

posted @ 2022-07-23 16:25  是冰美式诶  阅读(29)  评论(0)    收藏  举报