力扣48题
题目描述:
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。
你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/rotate-image
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解思路:矩阵的第i行变为第j列,其中i+j=n-1;
- 新建一个临时矩阵,将原来矩阵的第i行变为第j列
- 将临时矩阵赋给原来的矩阵
class Solution {
public void rotate(int[][] matrix) {
//将第i行-->第((n-1)-i)列即可
int n = matrix[0].length;//获取矩阵的秩
int[][] res = new int[n][n];//辅助矩阵
for(int i=0, j=(n-1);i<n;i++,j--){//外层的行
for(int k=0; k<n;k++){
res[k][j] = matrix[i][k];
}
}
//重新赋给原来的矩阵matrix
for (int i=0;i<res[0].length;i++){
for (int j=0;j<res.length;j++){
matrix[i][j] = res[i][j];
}
}
}
}