LeetCode 旋转图像
给定一个 *n *× n 的二维矩阵表示一个图像。
将图像顺时针旋转 90 度。
思路:用改变下标的方式进行旋转,但是要注意下标的计算。用循环的方法从外层一个个数倒序旋转,因为角落的同一个数涉及了不同的行列,假设每层有j个数则需要j-1次交换,-1是指减去角落数的重复交换。假设有一个n*n的二维数组,所以数组一共有n/2层,所以就要用两个嵌套循环,将每一层的数字交换后,进行再里面一层的数据交换。
class Solution {
public void rotate(int[][] matrix) {
int c = matrix.length;
System.out.print(c);
int i,j;
int temp = 0;
for(i=0;i<c/2;i++)
for(j=i;j<c-i-1;j++)
{
temp = matrix[i][j];
matrix[i][j] = matrix[c-1-j][i];//左-->上
matrix[c-j-1][i] = matrix[c-i-1][c-1-j];//下-->左
matrix[c-i-1][c-1-j] = matrix[j][c-i-1];//右-->下
matrix[j][c-i-1] = temp;//上-->右
}
}
}