【剑指offer】---将正方形矩阵旋转90°(Java)
题目描述
输入一个正方形矩阵,将正方形矩阵旋转90°,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16,旋转后的组数是:13 9 5 1 14 10 6 2 15 11 7 3 16 12 8 4.
CODE
// 将正方形数组旋转90°public class RotatoMatrix{public static void rotat(int [][] matrix){int tR = 0;int tC = 0;int dR = matrix.length - 1;int dC = matrix[0].length - 1; while(tR < dR){rotatEdge(matrix, tR++, tC++, dR--, dC--); // 沿着主对角线前进,将每一圈进行旋转}}public static void rotatEdge(int matrix, int tR, int tC, int dR, int dC){times = dC - tC;int temp = 0;for(int i = 0; i < times; i++){ // 一次循环就是交换完成一次,全部循环完毕就是外圈交换完毕。temp = m[tR][tC+i];m[tR][tC+i] = m[dR-i][tC];m[dR-i][tC] = m[dR][dC-i];m[dR][dC-i] = m[tR+i][dC];m[tR+i][dC] = temp;}}// 打印旋转后的数组public static void printMatrix(int[][] matrix){for(int i = 0; i != matrix.length; i++){for(int j = 0; j != matrix[0].length; j++){System.out.print(matrix[i][j] + " ");}System.out.println;}}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
