螺旋矩阵问题求解
来源:互联网 发布:告白 知乎 编辑:程序博客网 时间:2024/04/23 18:55
输入一个矩阵的行列数量,生成一个螺旋矩阵,比如输入5,则打印:
1 2 3 4 5
12 13 14 15 6
11 10 9 8 7
输入3,则打印:
1 2 3
8 9 4
7 6 5
下面就是他的算法
package com.huawei2;import java.util.Scanner;public class Test {private static int length;private Test(){ Scanner sc=new Scanner(System.in); System.out.println("请输入一个正整数:"); length=sc.nextInt(); array =new int[length][length]; System.out.println(length); value=1;}private static int value=0; private static int[][] array=null;private static Direction lastDirection=Direction.Right;static enum Direction{Right,Down,Left,Up;}public static void initArray(){int row = 0,line=0;for(int i=0;i<length*length;i++){array[row][line]=value;lastDirection=lastDirection(row,line);switch(lastDirection){case Right:{line++;break;}case Down:{row++;break;}case Left:{line--;break;}case Up:{row--;break;}}value+=1;}}public static Direction lastDirection(int row,int line){Direction direction=lastDirection;switch(direction){case Right:{if(line==length-1||array[row][line+1]!=0)direction=direction.Down;break;}case Down:{if(row==length-1||array[row+1][line]!=0){direction=direction.Left;}break;}case Left:{if(line==0||array[row][line-1]!=0){direction=direction.Up;}break;}case Up:{if(array[row-1][line]!=0){direction=direction.Right;}break;}}return direction;}public static void main(String[] args) {Test test=new Test();test.initArray();// showfor(int i1 = 0; i1 < length; i1++){for(int j1 = 0; j1 < length; j1++){//打印数字前加空格,使整体对齐if(10 > array[i1][j1])System.out.print(" " + array[i1][j1] + " ");else if(100 > array[i1][j1])System.out.print(" " + array[i1][j1] + " ");elseSystem.out.print(array[i1][j1] + " ");//进行换行if(length- 1 == j1)System.out.println();}}}}
- 螺旋矩阵问题求解
- 螺旋矩阵问题求解
- 螺旋矩阵的求解
- 螺旋矩阵问题
- 打印螺旋矩阵问题
- 螺旋矩阵问题
- 蓝桥杯中的螺旋矩阵问题
- [矩阵]螺旋矩阵问题(上)
- [矩阵]螺旋矩阵问题(下)
- 关于螺旋矩阵的打印问题
- 数学问题(二)螺旋矩阵
- 【笔面大全】螺旋矩阵问题汇总
- 螺旋矩阵
- 螺旋矩阵
- 螺旋矩阵
- 螺旋矩阵
- 螺旋矩阵
- 螺旋矩阵!
- Struts2多个文件上传
- C++ int类型转换string类型
- Linux 设备驱动开发 环境搭建
- DragTheBall小游戏之Android拖拽技术
- Ubuntu 手动更新 kernel
- 螺旋矩阵问题求解
- PCB中的常见名词解析
- Log4j 如何发送到邮箱
- Struts2标签的总结
- Adapter 适配器模式(结构型模式)
- 几个资源 dft
- POJ 2299 归并排序
- 客户应该知道的软件开发八个原则
- poj 1014