1、题目链接
https://leetcode.com/problems/rotate-image/
2、解题思路
这道题意思是说给你一个二维数组,然后让你将数组的值旋转90度,然后再输出,这道题的要求是让你在matrix数组中做修改,因为判题的时候会输出matrix数组,而不是其他东西;我的想法就是定义一个和matrix一样的数组,旋转90度之后,第一排变成了最后一列,第二排变成了倒数第二列......以此类推,这样的话我们利用新的数组重新构造matrix数组,也算是一种比较 low的方法了,下面附上一个高大上一点的方法:
关键是这个:
3、代码
- Java
public void rotate(int[][] matrix) {
if (null == matrix) {
return;
}
int length = matrix.length;
int[][] matrix2 = new int[length][length];
for (int i = 0; i < length; i++) {
for (int j = 0; j < length; j++) {
matrix2[i][j] = matrix[i][j];
}
}
for (int i = 0; i < length; i++) {
for (int j = 0; j < length; j++) {
matrix[j][length - i - 1] = matrix2[i][j];
}
}
}
网友评论