package org.jf.alg;
/**
* 蛇形数组
*
* n=3
* 1 2 3
* 8 9 4
* 7 6 5
* 最基本的直观爬行方式实现
* @author junfeng.chen
*
*/
public class SnakeArray
{
private int array[][] = null;
private int k = 0;
public SnakeArray(int n)
{
array = new int[n][n];
k = n*n;
init();
}
public SnakeArray(int m,int n)
{
array = new int[m][n];
k=m*n;
init();
}
/**
* print array
*
* for i =
*
*/
public void print()
{
int i=0,j=0;
for(i=0;i<array.length;i++)
{
for(j=0;j<array[i].length;j++)
{
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
private void init()
{
int i=0,j=0,n=1;//i 行 j列
while(n<=k)
{
while(j<array[0].length&&array[i][j]==0&&n<=k)//move right
{
array[i][j++]=n++;
}
i++;
j--;
while(i<array.length&&array[i][j]==0&&n<=k)//move down
{
array[i++][j]=n++;
}
i--;
j--;
while(j>=0&&array[i][j]==0&&n<=k)//move left
{
array[i][j--]=n++;
}
i--;
j++;
while(i>0&&array[i][j]==0&&n<=k)//move up
{
array[i--][j] = n++;
}
i++;
j++;
}
}
public static void main(String args[])
{
SnakeArray snake = new SnakeArray(10);
snake.print();
System.out.println();
snake = new SnakeArray(8,5);
snake.print();
}
}
分享到:
相关推荐
只需更改数组维数即可得到相应的蛇形数组,只支持起始方向向下的蛇形数组输出。
建立蛇形数组,并输出运行,可以更改参数,内附源代码,很方便。
用C++语言,写“蛇形数组”程序(数字倒三角),将程序数据写入到TXT文件夹里面,本程序是重庆大学举办类似ACM竞赛的第一题
用C++语言,写“蛇形数组”程序(数字倒三角),将程序数据写入到TXT文件夹里面,本程序是重庆大学举办类似ACM竞赛的第一题
现在需要解决以下问题,第一个,如何使得数组按照蛇形数组的排列方式排列,第二个程序中输入多少就会产生一个多少乘多少的数据,如果一开始就定义好数组的内存单元数量,就会产生溢出,或者浪费内存单元的问题,这些...
之前有上传过一次基于动态开辟的正向动态开辟蛇形数组,这次我做了一个类似的基于动态开辟的反向动态开辟蛇形数组,包含的技术点有动态开辟,Switch语句的使用,还有Windows函数库的使用等,在编写代码的时候我是...
使用二维数组和双重循环打印蛇形矩阵使用二维数组和双重循环打印蛇形矩阵使用二维数组和双重循环打印蛇形矩阵
只是简单实现蛇形填数C++,还没考虑提高时间效率空间效率的提高。
学习数组或则循环结构时经常遇到的一个可以说是经典的问题——蛇形矩阵
LeetCode算法蛇形走位 leetcode 个人算法学习代码,欢迎一起学习讨论! 数据结构 数组 -[x] 实现动态扩容数组 -[x] 实现有序数组 -[x] 合并两个有序数组 -[x] 简单:169.多数元素 -[x] 简单:1.两数之和 -[x] 简单:...
内含蛇形数组填值,猜大王游戏等编程题目及提示,加油。
变态的蛇形排序算法,从网上搜索资料后,自己写的一个C#Demo,给大家分享一下,免费下载喽!
网页模板——基于vue.js自适应蛇形曲线数据效果源码
2018/07/19 周四 21:32 <DIR> . 2018/07/19 周四 21:32 <DIR>...2018/06/14 周四 21:32 728 24蛇形填充数组.cpp 2018/06/14 周四 21:43 1,360 25螺旋加密.cpp 25 个文件 16,080 字节 2 个目录 1,989,103,616 可用字节
大家都来下下.改进改进.. 我没积分下东西了.. 大家都下下...
二维数组中,数字从左上角已s形输出。 原则上,斜线上下标的数值和相等。 基本如此,很简单的程序
matlab开发-serpindm。n维数组的蛇形遍历
分别讨论线性表、栈和队列、串、数组和广义表、 树、图等基本数据结构及其应用。 第八章 动态存储管理 介绍操作系统和编译程序中涉及的 动态存储管理的基本技术。 第九章 ~第十一章 查找和排序 介绍了各种实现...
64套网页特效,表白,做特效,个人简历专属,js静态网页特效,3D图片切换,3D图片切换 9种推拉门 animate.css AnimatedLetters ...蛇形文字 表格上下移动 表格操作 计时 贪吃蛇.html 轮播(自己写出
4. 蛇形填数字:该问题要求编写一个函数将数字填充到一个二维数组中,使得数组中的数字呈蛇形分布。例如,如果输入为一个 3x3 的数组,输出应为: ``` 1 2 3 6 5 4 7 8 9 ``` 该题考查了数组的处理和遍历。 5. 大数...