一、题目描述

二、题目思路
考虑和 旋转数组 题目有同样的数学问题
三、提交代码
class Solution {
public void rotate(int[][] matrix) {
for(int i =0;i<matrix.length;i++){
for(int j =i;j<matrix[0].length;j++){
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
for(int l =0;l<matrix.length;l++){
int left =0;
int right = matrix[0].length-1;
while(left<right){
int temp = matrix[l][left];
matrix[l][left] = matrix[l][right];
matrix[l][right] = temp;
left++;
right--;
}
}
}
}
四、代码思路
将矩阵顺时针旋转90度,即首先将矩阵转置,然后对每一行元素进行反转。
五、存在问题
由于需要原地操作,因此只能对方阵进行操作,如对3*4矩阵操作,转置后矩阵尺寸为4*3,会出现索引越界报错。