题目
给定一个 n × n 的二维矩阵表示一个图像。
将图像顺时针旋转 90 度。
说明:
你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
void rotate(int** matrix, int matrixSize, int* matrixColSize){
if (matrixSize == 0) return ;
//左、上、右、下边界
int l = 0, s = 0, r = matrixColSize[0] - 1, x = matrixSize - 1;
while (l < r) {
int temp, i = 0;
while (l + i < r) {
//temp暂存第一列的一个字符
temp = matrix[s + i][l];
matrix[s + i][l] = matrix[x][l + i]; //第一列存最后一行
matrix[x][l + i] = matrix[x - i][r];//最后一行存最后一列
matrix[x - i][r] = matrix[s][r - i];//最后一列存第一行
matrix[s][r - i] = temp;//第一行存第一列
i++;
}
l++; r--;
s++; x--;
}
}