Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time

You are given an n x n 2D matrix representing an image.

Rotate the image by 90 degrees (clockwise).

Note:

You have to rotate the image in-place, which means you have to modify the input 2D matrix directly. DO NOT allocate another 2D matrix and do the rotation.

Example 1:

Given input matrix = [ [1,2,3], [4,5,6], [7,8,9] ],

rotate the input matrix in-place such that it becomes: [ [7,4,1], [8,5,2], [9,6,3] ] Example 2:

Given input matrix = [ [ 5, 1, 9,11], [ 2, 4, 8,10], [13, 3, 6, 7], [15,14,12,16] ],

rotate the input matrix in-place such that it becomes: [ [15,13, 2, 5], [14, 3, 4, 1], [12, 6, 8, 9], [16, 7,10,11] ]

My code:

class Solution:
    def rotate(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: void Do not return anything, modify matrix in-place instead.
        """
        length=len(matrix)
        self.call_rotate(matrix,0,len(matrix)-1)
    def call_rotate(self,matrix,i,j):
        if j-i<=0:
            return
        for k in range(i,j):
            tmp_result1=matrix[i][k]
            tmp_result2=matrix[k][j]
            tmp_result3=matrix[j][j+i-k]
            #print(tmp_result3)
            tmp_result4=matrix[j+i-k][i]
            #Doing transfer
            matrix[i][k]=tmp_result4
            matrix[k][j]=tmp_result1
            matrix[j][j+i-k]=tmp_result2
            matrix[j+i-k][i]=tmp_result3
            
        
        self.call_rotate(matrix,i+1,j-1)
        

Solution: https://leetcode.com/problems/rotate-image/