思路:
1. 一开始看到题目的时候,能够想到的是 找到对应的数学函数公式,发现太久了哈哈,最后发现有点类似之前数据的翻转题目,(x,y)->(x+2,y-4)等等。。就是分步骤进行操作
结果就是
可以通过先上下 y = 1/2y来进行折叠
再通过y = 1/2x对称
可以得到90度翻转,实际上也就是先180度翻转最后在除以2就是90度翻转
难点:
关键要能想到数学的矩阵的关系
结果:
class Solution {
public void rotate(int[][] matrix) {
//旋转图像的操作 90度 先上下翻转 在对角翻转 90度翻转
//1. 直接进行模拟 邻边的数据转换方式不一致
//2. 矩阵内部的数据 能够对调位置
//先上下翻转 在对角翻转 90度翻转
int n = matrix.length;
for(int i = 0; i < n / 2; i++) {
//直接整体换行
int[] temp = matrix[i];
matrix[i] = matrix[n - 1 - i];
matrix[n - 1 - i] = temp;
}
for(int i = 0; i < n; i++) {
for(int j = i; j < n; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
}
}