123
456
789
==>
741
852
963
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
==>
NOTE: do it in place
2. Implementation
public void rotate(int[][] matrix, int n)
{
// vlaidate the input
if ( matrix == null || matrix.length ==0 || matrix[0].length == 0)
{
return matrix;
}
//
for ( int i = 0 ; i < n/2 ; i++)
{
for ( int j = i ; j < n -1 ; j++ )
{
int tmp = matrix[i][j];//top
matrix[i][j] = matrix[n-1-j][i];//top<-left
matrix[n-1-j][i] = matrix[n-1-i][n-1-j];//left<-bottom
matrix[n-1-i][n-1-j] = matrix[j][n-1-i];//bottom<-right
matrix[j][n-1-i] = tmp;// right<-top
}
}
}
3. Similar Ones
No comments:
Post a Comment