1.题目
https://leetcode-cn.com/problems/rotate-image/
2.题解
这道题解法有好几种。第一种解法就是一圈一圈的旋转,从外到内。第二种解法,就是我用的这种,是先按照中心点进行一次旋转,再按照中间位置的水平线进行一次翻转,就可以到达效果。
3.代码
class Solution {
public void rotate(int[][] matrix) {
if (matrix == null){return;}
int n = matrix.length;
// 沿着中心点进行一次对角的旋转
for (int i = 0; i < n; i++){
for (int j = 0; j < n - i; j++) {
int rep = matrix[i][j];
matrix[i][j] = matrix[n - 1 - j][n - 1 - i];
matrix[n - 1 - j][n - 1 - i] = rep;
}
}
// 沿着中间水平线上下旋转
for (int i = 0; i < n / 2; i++){
for (int j = 0; j < n; j++) {
int rep = matrix[i][j];
matrix[i][j] = matrix[n - 1 - i][j];
matrix[n - 1 - i][j] = rep;
}
}
}
}
网友评论