问题
给定一个 n × n 的二维矩阵,按顺时针旋转 90 度在原矩阵上进行旋转。
思路
依次对矩阵最外层进行90度偏移
原矩阵:
image.png
旋转后矩阵:
image.png
实现
public class Rotate {
public static void main(String[] args) {
int[][] nums = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
rotate(nums);
}
private static void rotate(int[][] matrix) {
int length = matrix.length;
for (int i = 0; i < length / 2; i++) {
for (int j = i; j < length - i - 1; j++) {
int temp = matrix[i][j];
int m = length - j - 1;
int n = length - i - 1;
matrix[i][j] = matrix[m][i];
matrix[m][i] = matrix[n][m];
matrix[n][m] = matrix[j][n];
matrix[j][n] = temp;
}
}
}
}
image.png
网友评论