力扣之矩阵旋转矩阵

题目来源
我的思路:
矩阵的第i行j列旋转后变为第j行倒数第i列

void rotate(int** matrix, int matrixSize, int* matrixColSize){
    int i,j;
    int a[matrixSize][matrixSize];
    for(i=0;i<matrixSize;i++){
        for(j=0;j<matrixSize;j++){
            a[j][matrixSize-i-1]=matrix[i][j];
        }
    }
    for(i=0;i<matrixSize;i++){//力扣要求,必须是原数组
        for(j=0;j<matrixSize;j++){
            matrix[i][j]=a[i][j];
        }
    }
}

其他思路:
先将矩阵按右对角线为轴,对称交换;再以矩阵中间一列为轴,对称交换

void rotate(int** matrix, int matrixSize, int* matrixColSize){
    int i,j;
    for(i=0;i<matrixSize;i++){
        for(j=i+1;j<matrixSize;j++){
            int t=matrix[i][j];
            matrix[i][j]=matrix[j][i];
            matrix[j][i]=t;
        }
    }
    for(i=0;i<matrixSize;i++){
        for(j=0;j<matrixSize/2;j++){
            int t=matrix[i][j];
            matrix[i][j]=matrix[i][matrixSize-j-1];
            matrix[i][matrixSize-j-1]=t;
        }
    }
}

你可能感兴趣的:(力扣之矩阵旋转矩阵)