
瓜子二面面试题
思路:主要找到旋转前后下标之间的对应关系,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];
}
}
}
}
输出:


本文深入解析了矩阵旋转算法,特别是如何通过找到旋转前后下标之间的对应关系实现矩阵的顺时针旋转。文章提供了详细的代码实现,包括使用临时数组进行原数组的拷贝,确保旋转过程的正确性。
802

被折叠的 条评论
为什么被折叠?



