旋转图像

题目需求:给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。
你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[[7,4,1],[8,5,2],[9,6,3]]

输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]
输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution {
public void rotate(int[][] matrix) {
int x=matrix.length;
int[][] newmatrix=new int[x][x];
for(int i=0;i<x;i++)
{
for(int j=0;j<x;j++)
{
newmatrix[j][x-i-1]=matrix[i][j];
}
}
for(int i=0;i<x;i++)
{
for(int j=0;j<x;j++)
{
matrix[i][j]=newmatrix[i][j];
}
}
}
}

这里附上我的解释:对于矩阵中的第一行而言,在旋转后,它出现在倒数第一列的位置:对于矩阵中的第二行而言,在旋转后,它出现在倒数第二列的位置:建立一个临时数组,将上述规则复制到原先数组就行。
内存占用:39.31mb