Saturday, January 30, 2016

Rotate MXN matrix clockwise by 90 degree

Question: Rotate MXN matrix clockwise by 90 degree
Approach:
Observation
first row of source ------> last column of destination
second row of source ------> last but-one column of destination
so ... on
last row of source ------> first column of destination
n = number of rows and columns (rows==columns, square matrix)
i = line
j = column
a[ ][ ] and b[ ][ ] = the matrixes
And the instructions:
for(i=0; i<m; i++)
                    for(j=0; j<n; j++)
                           b[j][m-i-1]=a[i][j];
Solution:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public int[][] rotateMatrix(int[][] a, int m, int n) {
 
int[][] b = new int[m][n];
 
for(int i=0; i<m; i++) {
 
for(int j=0; j<n; j++) {
 
b[j][m-i-1] = a[i][j];
 
}
 
}
 
return b;
 
}

No comments:

Post a Comment