解析:循环 交换 先旋转最外层,再依次向里
class Solution {
public void rotate(int[][] matrix) {
int tR = 0, tC = 0; //矩阵的左上角元素的坐标
int dR = matrix.length - 1, dC = matrix[0].length - 1; //矩阵右下角元素的坐标
while (tR <= dR) {
int times = dC - tC; //需要循环的次数
for (int i = 0; i < times; i++) {
int tmp = matrix[tR][tC + i];
matrix[tR][tC + i] = matrix[dR - i][tC];
matrix[dR - i][tC] = matrix[dR][dC - i];
matrix[dR][dC - i] = matrix[tR+i][dC];
matrix[tR+i][dC] = tmp;
}
tR++;
tC++;
dR--;
dC--;
}
}
}