方阵顺时针旋转
2018-02-17 11:21
253 查看
对一个方阵转置,就是把原来的行号变列号,原来的列号变行号
例如,如下的方阵:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
转置后变为:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
但,如果是对该方阵顺时针旋转(不是转置),却是如下结果:
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
下面的代码实现的功能就是要把一个方阵顺时针旋转。
package com.company;
/**
* Created by Mr.Smart on 2018-01-23.
*/
public class Question20 {
public static void main(String[] args){
int[][] n = {
{1 ,2 ,3 ,4 },
{5 ,6 ,7 ,8 },
{9 ,10,11,12},
{13,14,15,16}
};
int[][] m = new int[n.length][n.length];
print(n);
ratotion(n,m,0,n.length-1);
print(m);
}
private static void ratotion(int[][] n, int[][] m, int i, int j) {
int t = j;
if (i>n.length-1) return;
for (int k=0;k<n.length;k++){
m[i][k] = n[j--][i];
}
ratotion(n,m,++i,t);
}
private static void print(int[][] n) {
for (int i=0;i<n.length;i++){
for (int j=0;j<n[i].length;j++){
System.out.print(n[i][j]+" ");
}
System.out.println();
}
}
}
例如,如下的方阵:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
转置后变为:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
但,如果是对该方阵顺时针旋转(不是转置),却是如下结果:
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
下面的代码实现的功能就是要把一个方阵顺时针旋转。
package com.company;
/**
* Created by Mr.Smart on 2018-01-23.
*/
public class Question20 {
public static void main(String[] args){
int[][] n = {
{1 ,2 ,3 ,4 },
{5 ,6 ,7 ,8 },
{9 ,10,11,12},
{13,14,15,16}
};
int[][] m = new int[n.length][n.length];
print(n);
ratotion(n,m,0,n.length-1);
print(m);
}
private static void ratotion(int[][] n, int[][] m, int i, int j) {
int t = j;
if (i>n.length-1) return;
for (int k=0;k<n.length;k++){
m[i][k] = n[j--][i];
}
ratotion(n,m,++i,t);
}
private static void print(int[][] n) {
for (int i=0;i<n.length;i++){
for (int j=0;j<n[i].length;j++){
System.out.print(n[i][j]+" ");
}
System.out.println();
}
}
}
相关文章推荐
- Java 数组转置 方阵顺时针旋转90度
- 把一个方阵顺时针旋转。
- 行列方阵顺时针旋转
- 方阵原地顺时针旋转90度
- 方阵顺时针旋转的实现代码
- 动画 -- 点击按钮 -- 顺时针旋转一圈
- android开发直播将yvu420顺时针逆时针各旋转90度
- 顺时针旋转矩阵
- OJ.旋转方阵
- 要求: 生成一个4*4的2维数组并将其顺时针旋转90度
- 人人都来写算法 之 矩阵顺时针旋转90度,空间效率O(1),时间效率O(n*n)
- 生成数字旋转方阵
- 看看这张图片旋转是顺时针还是逆时针?
- 顺时针或逆时针旋转180度等于先作一个水平镜像,再作一个垂直镜像!
- 图片顺时针旋转90度的算法
- 【矩阵】矩阵顺时针旋转
- 字母旋转方阵
- 打印如下图案:要求,通过输入不同的参数(比如1、2、3、4...N)该图案可以90°*N的倍数进行顺时针旋转。不需要图形化界面,在控制台中输出即可。注意:图中的“I”为占位符,真实的图形不应该有此符号
- 一副由NxN矩阵表示的图像,将图像顺时针旋转90度。
- 【数组】将N*N的int类型矩阵顺时针旋转90度