瓜子二面面试题
思路:主要找到旋转前后下标之间的对应关系,matrix[j][n-1 - i] = matrix[i][j],但是在遍历过程中原数组被改变了,所以需要提前将原数组拷贝一份。
代码:
public class RotateImage48 {
public static void main(String[] args) {
int[][] num = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }};
rotate(num);
for (int i = 0; i < num.length; i++) {
System.out.println(Arrays.toString(num[i]));
}
}
public static void rotate(int[][] matrix) {
int row = matrix.length;
int col = matrix[0].length;
int[][] tmp=new int[row][col];
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
tmp[i][j] = matrix[i][j];
}
}
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
matrix[j][row-1 - i] = tmp[i][j];
}
}
}
}
输出: