矩陣旋轉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