LeetCode 48. 旋转图像
原题链接
中等
作者:
LangB
,
2020-10-30 21:04:57
,
所有人可见
,
阅读 251
class Solution {
public void rotate(int[][] matrix) {
int n = matrix.length;
// 先以左上-右下对角条线为轴做翻转
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
swap(matrix, i, j, j , i);
}
}
// 再以中心的竖线为轴做翻转
for (int i = 0; i < n; i++) {
for (int j = 0, k = n - 1; j < k; j++, k--) {
swap(matrix, i, j, i, k);
}
}
}
private void swap(int[][] matrix, int x1, int y1, int x2, int y2) {
int temp = matrix[x1][y1];
matrix[x1][y1] = matrix[x2][y2];
matrix[x2][y2] = temp;
}
}