题解 | #顺时针旋转矩阵#
顺时针旋转矩阵
https://www.nowcoder.com/practice/2e95333fbdd4451395066957e24909cc
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param mat int整型二维数组 * @param matRowLen int mat数组行数 * @param matColLen int* mat数组列数 * @param n int整型 * @return int整型二维数组 * @return int* returnSize 返回数组行数 * @return int** returnColumnSizes 返回数组列数 */ void swap(int* x, int* y) { int tmp = *x; *x = *y; *y = tmp; } void reverse(int* a, int len) { int left = 0; int right = len-1; while(left < right) { swap(&a[left], &a[right]); left++; right--; } } int** rotateMatrix(int** mat, int matRowLen, int* matColLen, int n, int* returnSize, int** returnColumnSizes ) { // write code here *returnSize = matRowLen; *returnColumnSizes = matColLen; // 按照主对角线进行交换 for(int i = 0; i < *matColLen; i++) { for(int j = 0; j < i; j++) { swap(&mat[i][j], &mat[j][i]); } } // 逆序每一行 for(int i = 0; i < matRowLen; i++) { reverse(mat[i], *matColLen); } return mat; }