博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java旋转矩阵
阅读量:2492 次
发布时间:2019-05-11

本文共 2215 字,大约阅读时间需要 7 分钟。

今天写了java旋转矩阵,参考了下网上的代码。

旋转矩阵思路比较简单,其实就是按照人的思维方法(可能有更优解,但是我比较笨)

其实就是一个数组,先从左到右,然后从上到下,然后从右到左,最后从下到上,循坏一周后减二接着循环,直到最大值到达n*n

代码如下:

package news;import java.util.Scanner;public class luoxuan {	public static final int NMAX = 100;	public static void main(String [] arg){	/* 	 * 编程输出螺旋方阵.螺旋方阵是指将从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。如4阶的螺旋方阵形式如下:1    2     3     412  13  14    511  16  15    610   9    8      7要求:1)从键盘输入螺旋方阵的阶数        2)代码有注释        3)对算法的思路给出文字描述  	 	 */		System.out.println("请输入螺旋矩阵阶数:");	 	Scanner scanner=new Scanner(System.in);	 	int n=scanner.nextInt();		 	int[][] arrays=new int[NMAX][NMAX];			 		 	int i,j;	 	for(i=0;i
z) break; arrays[i][j] = ou++; } for(j--,i++;i
z) break; arrays[i][j] = ou++; } for(i--,j--;j>=c;j--)//从右到左 { if(ou>z) break; arrays[i][j] = ou++; } for(j++,i--;i>=c+1;i--)//从下到上 { if(ou>z) break; arrays[i][j] = ou++; } c++; } } private static void getluoxuan11(int [][]arrays,int n) { // System.out.println("从矩阵的左上角开始从数字的最大值开始螺旋"); int c=0,i,j; int z = n*n; int ou=z; while(ou>=1) { i=0; j=0; for(i+=c,j+=c;j
z) break; arrays[i][j] = ou--; } for(j--,i++;i
z) break; arrays[i][j] = ou--; } for(i--,j--;j>=c;j--)//从右到左 { if(ou>z) break; arrays[i][j] = ou--; } for(j++,i--;i>=c+1;i--)//从下到上 { if(ou>z) break; arrays[i][j] = ou--; } c++; } } private static void getluoxuan2(int [][]arrays,int n) {// System.out.println("从矩阵的右上角开始从数字1开始螺旋:"); int c=0,i,j; int z = n*n; int ou=1; while(ou<=z) { i=0; j=0; for(i=c,j=n-c-1;j>=c;j--) //从右到左 { if(ou>z) break; arrays[i][j] = ou++; } for(j++,i++;i
z) break; arrays[i][j] = ou++; } for(i--,j++;j
z) break; arrays[i][j] = ou++; } for(j--,i--;i>=c+1;i--)//从下到上 { if(ou>z) break; arrays[i][j] = ou++; } c++; } } static void getluoxuan22(int [][]arrays,int n) { // System.out.println("从矩阵的右上角开始从矩阵的最大值开始螺旋:"); int c=0,i,j; int z = n*n; int ou=z; while(ou>=1) { i=0; j=0; for(i=c,j=n-c-1;j>=c;j--) //从右到左 { if(ou>z) break; arrays[i][j] = ou--; } for(j++,i++;i
z) break; arrays[i][j] = ou--; } for(i--,j++;j
z) break; arrays[i][j] = ou--; } for(j--,i--;i>=c+1;i--)//从下到上 { if(ou>z) break; arrays[i][j] = ou--; } c++; } } }

转载地址:http://soorb.baihongyu.com/

你可能感兴趣的文章
windows系统查找文件-通配符的使用
查看>>
python爬虫:其他操作
查看>>
IDEA 运行spingboot时出现Process finished with exit code -1073741819 (0xC0000005)
查看>>
大数据学习之Linux环境搭建(导航)
查看>>
[企业化NET]Window Server 2008 R2[3]-SVN 服务端 和 客户端 基本使用
查看>>
模板方法模式
查看>>
word20161207
查看>>
【转】Java MySQL数据类型对照
查看>>
poj 3070
查看>>
javascript:正则表达式对象
查看>>
esper(4-3)-Non-Overlapping Context
查看>>
python web django base skill
查看>>
arcgis建立拓扑分析(检验矢量图)
查看>>
SQL Server 中创建数据库、更改主文件组示例
查看>>
Ubuntu下修改file descriptor
查看>>
全排列问题(递归)
查看>>
题目1179:阶乘-------------阶乘不用long long int 就不能AC
查看>>
android 小工具:pc 上用 curl 命令打开手机浏览器,浏览指定网址
查看>>
如何在EXCEL中添加下拉框
查看>>
学习jvm,关于MAT an internal error occurred during:"Parsing heap dump" from问题
查看>>