You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees clockwise, in place. You have to modify the input 2D matrix directly. Do not allocate another 2D matrix to do this task.
n x n).Input:
matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]
Output:
matrix = [ [7, 4, 1], [8, 5, 2], [9, 6, 3] ]
Input:
matrix = [ [ 5, 1, 9,11], [ 2, 4, 8,10], [13, 3, 6, 7], [15,14,12,16] ]
Output:
matrix = [ [15,13, 2, 5], [14, 3, 4, 1], [12, 6, 8, 9], [16, 7,10,11] ]
Here's a sample solution in Python:
python def rotate(matrix): n = len(matrix) for i in range(n): matrix[i] = matrix[i][::-1] # reverse each row for i in range(n): for j in range(i, n): matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j] # transpose
This solution first reverses each row of the matrix, and then transposes the matrix to achieve the 90-degree clockwise rotation.