[问题描述]
图片旋转是对图片最简单的处理方式之一,在本题中,你需要对图片顺时针旋转 90 度。
我们用一个 n x m 的二维数组来表示一个图片,例如下面给出一个 3x4 的图片的例子:
1 3 5 7
9 8 7 6
3 5 9 7
这个图片顺时针旋转 90 度后的图片如下:
3 9 1
5 8 3
9 7 5
7 6 7
[代码]
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int row = scanner.nextInt();
int col = scanner.nextInt();
int[][] img1 = new int[row][col];//原二维数组
int[][] img2 = new int[col][row];//旋转后的二维数组 行列交换
for(int i = 0;i < img1.length;i++) {
for(int j = 0;j < img1[i].length;j++) {
img1[i][j] = scanner.nextInt();
}
}
int time = 0;//用于读取原数组每一列的元素
for(int i = 0;i < img2.length;i++) {
int temp = row;//新数组读取完成后
for(int j = 0;j < img2[i].length;j++) {
img2[i][j] = img1[--temp][time];//读取原数组每一行 time列的元素
}
time++;
}
//输出旋转后的二维数组
for(int i = 0;i < img2.length;i++) {
for(int j = 0;j < img2[i].length;j++) {
System.out.print(img2[i][j]);
}
System.out.println();
}
}
}