用java实现螺旋数组
来源:互联网 发布:python 新浪股票数据 编辑:程序博客网 时间:2024/06/04 20:28
接收数组的行数和列数,返回正序和倒序的螺旋数组
package cn.baokx;public class Test {public static void main(String[] args) {printArray(getSpiralArray(5,5,false));System.out.println("**************");printArray(getSpiralArray(5,5,true));}//返回螺旋数组public static int [][] getSpiralArray(int m,int n,boolean reverse){//定义一个长度为m*n的数组,并按顺序初始化int [] numArray = new int[m*n];for(int i = 0 ; i < numArray.length ; i++){if(!reverse){numArray[i] = (i+1);}else{numArray[i] = (numArray.length-i);}}//初始化数组下标int foot = 0;//声明螺旋数组int[][] array = new int[m][n];//计算"层数",以m和n中较小的数为准int layer = m<n?m:n;layer = (layer%2==1)?(layer / 2 + 1):(layer / 2);// 从外层到里层循环for (int i = 0; i < layer; i++) { //从左到右for (int j = i; j < n - i; j++) {array[i][j] = numArray[foot++];if(foot>=m*n){return array;}}// 从上到下for (int j = i + 1; j < m - i; j++) {array[j][n - i - 1] = numArray[foot++];if(foot>=m*n){return array;}}// 从右到左for (int j = n - i - 2; j >= i; j--) {array[m - i - 1][j] = numArray[foot++];if(foot>=m*n){return array;}}// 从下到上for (int j = m - i - 2; j > i; j--) {array[j][i] = numArray[foot++];if(foot>=m*n){return array;}}}return array;}//打印二维数组public static void printArray(int [][] array){for (int i = 0; i < array.length; i++) {for (int j = 0; j < array[0].length; j++) { if(array[i][j]<10){ System.out.print("0"); } System.out.print(array[i][j] + " ");}System.out.println();} }}
4 0
- 用java实现螺旋数组
- 螺旋数组java实现
- java实现螺旋数组-另类方法
- Java 实现顺时针螺旋二维数组输出
- java螺旋数组
- Java 螺旋数组的实现方式-一个循环实现哦
- PHP实现螺旋矩阵(螺旋数组)
- java 实现螺旋矩阵
- java实现螺旋矩阵
- java螺旋方阵实现
- 螺旋矩阵的Java实现
- 螺旋矩阵算法java实现
- 螺旋矩阵算法java实现
- 螺旋矩阵算法 java实现
- java实现数字螺旋矩阵
- Java实现-螺旋矩阵1
- Java实现-螺旋矩阵2
- c#简单实现一个螺旋数组
- block使用小结、在arc中使用block、如何防止循环引用(zz)
- const用法
- 优先队列priority_queue
- adb 链接不上
- ExtJs控件属性配置详细
- 用java实现螺旋数组
- ssh配置文件
- x264参数--码率控制
- 解决session过期跳转到登陆页面并跳出iframe框架
- 备忘: ifconfig, route, ip, vconfig, mii-tool
- 数据库表的列查询不到值
- 供应安卓车牌识别
- Java的IO基础学习
- 3孔一红科技厅迎来了又