Skip to content

LC 0048 [M] Rotate Image

Code with Senpai edited this page Mar 10, 2022 · 1 revision
class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        l = 0
        r = len(matrix) - 1
        
        while l < r:
            for i in range(r - l): # i is the layer
                top, bottom = l, r
                
                # save the topLeft                
                topLeft = matrix[top][l + i]
                
                # move bottom left into top left
                matrix[top][l + i] = matrix[bottom - i][l]
                
                # move bottom right into bottom left
                matrix[bottom - i][l] = matrix[bottom][r - i]
                
                # move top right into bottomr ight
                matrix[bottom][r - i] = matrix[top + i][r]
                
                # move top left into top right
                matrix[top + i][r] = topLeft
            r -= 1
            l += 1
class Solution:
    def rotate(self, A):
        n = len(A)
        mid = n // 2
        for i in range(mid):
            for j in range(n - mid):
                A[i][j], A[~j][i], A[~i][~j], A[j][~i] = \
                A[~j][i], A[~i][~j], A[j][~i], A[i][j] # like above but reverse
Clone this wiki locally