Rotate the image by 90 degrees (clockwise).
Follow up:
Could you do this in-place?
Naive Way: To do it in-place, need to start from a point, find its corresponding new position, and then start with the new position, find its corresponding position...
The range of two index pointers is important.
public class Solution {
public void rotate(int[][] matrix) {
int n = matrix.length;
for(int i = 0;i < n-1;i++){
for(int j = i;j < n-1-i;j++){
int count = 0;
int x = i,y = j;
int pre = matrix[x][y];
while(count++ < 4){
int temp = matrix[y][n-1-x];
matrix[y][n-1-x] = pre;
int temp_x = x;
x = y;
y = n-1-temp_x;
pre = temp;
}
}
}
return;
}
}
No comments:
Post a Comment