思路
不能使用辅助数组,所以关键在于弄清楚旋转后坐标的变化规律。当矩阵的大小n为偶数时,以n/2行和n/2列的元素为起点,当矩阵的大小n为奇数时,以n/2行和(n+1)/2列的元素为起点
解题过程
关键:旋转过程中互相交换的四个元素的坐标为:1.matrix[i][j] 2. matrix[n - 1 - j][i] 3.matrix[n - 1 - i][n - 1 - j] 4.matrix[j][n - 1 - i]
Code
class Solution {
public void rotate(int[][] matrix) {
int n=matrix.length;
int row=n/2;
int col=(n+1)/2;
for(int i=0;i<row;i++){
for(int j=0;j<col;j++){
int t=matrix[i][j];
matrix[i][j] = matrix[n - 1 - j][i];
matrix[n - 1 - j][i] = matrix[n - 1 - i][n - 1 - j];
matrix[n - 1 - i][n - 1 - j] = matrix[j][n - 1 - i];
matrix[j][n - 1 - i] = t;
}
}
}
}
作者:菜卷
链接:https://leetcode.cn/problems/rotate-image/solutions/2900533/xuan-zhuan-tu-xiang-by-ashi-jian-chong-d-4nud/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
标签:rotate,matrix,46,元素,矩阵,旋转,int,图像,day
From: https://blog.csdn.net/qq_53568730/article/details/141789305