题解 | #顺时针旋转矩阵#
顺时针旋转矩阵
http://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 返回数组列数
- C语言声明定义全局变量请加上static,防止重复定义 / int* rotateMatrix(int** mat, int matRowLen, int* matColLen, int n, int* returnSize, int** returnColumnSizes ) { // write code here int x=matRowLen,y= matColLen,i,cet=0,len,z=0,s=0; len=xy; intarr=(int)malloc(sizeof(int*)x); for(i=0;i<x;i++) { arr[i]=(int)malloc(sizeof(int)*y); } while(1) { for(i=x-1;i>=z;i--) { arr[z][x-i-1+z]= mat[i][z]; cet++; } if(cet>=len) break; for(i=s+1;i<y;i++) { arr[i][x-1]=mat[s][i]; cet++; } if(cet>=len) break; for(i=z+1;i<x;i++) { arr[x-1][y-1-i+z]=mat[i][y-1]; cet++; } if(cet>=len) break; for(i=y-2;i>s;i--) { arr[i][s]=mat[x-1][i]; cet++; } if(cet>=len) break; x--; y--; s++; z++; } *returnSize=matRowLen; *returnColumnSizes=matColLen; return arr; }