public class test28 { public static void rotate(int[][] matrix){ int a =0; int b =0; int c = matrix.length-1; int d = matrix[0].length-1; while (a < c){//由于是正方形,所以行越界列一定越界 rotateEdge(matrix , a++ , b++ , c-- ,d--); } } public static void rotateEdge(int[][] m, int a, int b, int c,int d){ int tmp = 0; for(int i =0 ; i < d-b ;i++){//有多少组次 //m[a][b+i]上面一组 //m[a+i][d]右边一组 //m[c][d-i]下面一组 //m[c-i][b]左边一组 //然后不断组与组变换解决 tmp = m[a][b+i]; m[a][b+i] = m[c-i][b]; m[c-i][b] = m[c][d-i]; m[c][d-i] = m[a+i][d]; m[a+i][d] =tmp; } } }
原地旋转正方形矩阵
最新推荐文章于 2024-11-15 18:38:47 发布