难度 中等
实际上这道题算是比较简单的,关键在于题目要求不占用额外空间。开始以为是指不新增任何变量,想了好一会没想出来解决方案,于是硬着头皮上我认为空间度最小的方法,结果通过了,时间空间都是100。不占用额外空间原来是指空间复杂度o(1)就可以了。
public void rotate(int[][] matrix) {
for(int i = 0; i < matrix.length; i++){
for(int j = i; j >= 0; j--){
if(i != j){
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
}
for(int i = 0; i < matrix.length; i++){
for(int j = 0; j < matrix.length/2; j++){
int temp = matrix[i][j];
matrix[i][j] = matrix[i][matrix.length-1-j];
matrix[i][matrix.length-1-j] = temp;
}
}
}