矩阵旋转90度


题目说明:

给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后(顺时针)的NxN矩阵,保证N小于等于500,矩阵元素小于等于256。

 

注意:不要使用缓存矩阵

输入

3
1 2 3
4 5 6
7 8 9

 

输出

7 4 1 
8 5 2
9 6 3

 

拓展:逆时针旋转90度,返回旋转后的矩阵。

顺时针旋转:(具体分析思路见代码)

 

 1 public class case8_TransformMatrix {
 2     static Scanner sc = new Scanner(System.in);
 3     static int m = sc.nextInt();// 矩阵的阶数
 4     public static void main(String[] args) {
 5         
 6         int[][] matrix = new int[m][m];
 7         
 8         setScanMatrix(matrix);
 9         getPrintMatrix(matrix);
10         clockwise1(matrix,m);
11         //colckwise2(matrix,m);
12         
13     }
14     //打印矩阵
15     private static void getPrintMatrix(int[][] matrix) {
16         for (int[] arr : matrix){
17             for (int e : arr) {
18                 System.out.print(e + "  ");
19             }
20             System.out.println();
21         }        
22     }
23     //从键盘输入矩阵
24     private static void setScanMatrix(int[][] matrix) {
25         for (int i = 0; i < m; i++) {
26             for (int j = 0; j < m; j++) {
27                 matrix[i][j] = sc.nextInt();
28             }
29         }        
30     }
31     //第一种方法结局顺时针旋转90输出矩阵
32     //思路是原矩阵旋转90度之后,第一行成为最后一列;
33     private static void clockwise1(int[][] matrix, int m) {
34 
35         for (int i = 0; i < m; i++) {//输出旋转90度的矩阵
36             for (int j = m - 1; j >= 0; j--) {
37                 System.out.print(matrix[j][i] + " ");
38             }
39             System.out.println();
40         }        
41     }
42 }

 

逆时针旋转

 1 public class test {
 2 
 3     public static void main(String[] args) {
 4         Scanner in = new Scanner(System.in);
 5         int a = in.nextInt();
 6         int x[][] = new int[a][a];
 7         for (int i = 0; i < a; i++) {
 8             for (int j = 0; j < a; j++) {
 9                 x[i][j] = in.nextInt();
10             }
11         }
12         for (int i = a-1; i >=0; i--) {
13             for (int j = 0; j <a; j++) {
14                 System.out.print(x[j][i]+" ");
15             }
16             System.out.println();
17         }
18     }
19 }

逆时针输出

 

3 6 9 
2 5 8
1 4 7

 

 

 

给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于500,图像元素小于等于256


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM