题目描述
- 矩阵题,一眼就感觉很烦,直接看了题解= =
- 因为要求原地旋转,所以只能用temp来做
- 当然,我们还是要回顾一下矩阵转置的,看看和这道题有啥不同,说不定就能用上呢。
- 好的,我们惊奇地发现,这玩意就是转置的镜像,那就好办了:转置 + 镜像即可
代码 & 思路
- 注意转置的范围,别直接转置两次还原了
- 时间复杂度O(
n
2
n^2
n2)
class Solution {
public void rotate(int[][] matrix) {
int row = matrix.length;
int col = matrix[0].length;
for(int i=0;i<row;i++){
for(int j=i;j<col;j++){
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
for(int j=0;j<col/2;j++){
for(int i=0;i<row;i++){
int temp = matrix[i][j];
matrix[i][j] = matrix[i][col - j -1];
matrix[i][col - j -1] = temp;
}
}
}
}