问题描述
旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。
计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。
计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。
输入格式
输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。
接下来n行每行包含m个整数,表示输入的图像。
接下来n行每行包含m个整数,表示输入的图像。
输出格式
输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。
样例输入
2 3
1 5 3
3 2 4
1 5 3
3 2 4
样例输出
3 4
5 2
1 3
5 2
1 3
评测用例规模与约定
1 ≤ n, m ≤ 1,000,矩阵中的数都是不超过1000的非负整数。
1 package com.ezreal; 2 3 import java.util.*; 4 5 public class Main { 6 7 /** 8 * @param args 9 */ 10 public static void main(String[] args) { 11 // TODO Auto-generated method stub 12 new Main().run(); 13 } 14 public void run(){ 15 Scanner in = new Scanner(System.in); 16 int m=in.nextInt();//2 17 int n=in.nextInt();//3 18 int [][]a = new int[n][m]; 19 for(int i=0;i<m;i++ ){ 20 for(int j=n-1;j>=0;j--){ 21 a[j][i]=in.nextInt(); 22 } 23 } 24 for(int i=0;i<n;i++){ 25 for(int j=0;j<m;j++){ 26 System.out.print(a[i][j]+" "); 27 } 28 System.out.println(); 29 } 30 } 31 32 }
本题的主要是两种方法,一种是存储时传为输出的格式,另一种是输出时按题中格式输出。本题的做法是以第一种情况。