一个算法,但是不知道名字,博客记录一下
2017-11-01 00:00
435 查看
摘要: 媳妇提给我的问题
输入4打印出
1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7
输入5打印出
1 16 15 14 13
2 17 24 23 12
3 18 25 22 11
4 19 20 21 10
5 6 7 8 9
一个逆时针循环叠加的操作,代码如下
,个人纪录
输入4打印出
1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7
输入5打印出
1 16 15 14 13
2 17 24 23 12
3 18 25 22 11
4 19 20 21 10
5 6 7 8 9
一个逆时针循环叠加的操作,代码如下
import java.util.ArrayList; import java.util.List; public class Demo1 { private int num=0 ; private List<String[]> arrs ; private int numSer = 0 ; public static void main(String[] args) { new Demo1().start(5); } public void start(int num){ this.num = num ; if(this.num<0){ System.out.println("不可小于0"); return ; } arrs = new ArrayList<String[]>() ; String[] itemArr= null ; for(int i=0 ;i<num;i++){ itemArr = new String[num] ; arrs.add(itemArr) ; } bot(0, -1); for(String[] items:arrs){ for(String s:items){ System.out.print(s+"\t"); } System.out.println(); } } //下 private void bot(int x , int y){ y++; boolean isbrek = false ; int len = num -y ; //System.out.println("x:"+x+",y:"+y); if(arrs.get(y)[x]!=null){ return ; } for(;y<len;y++){ if(arrs.get(y)[x]!=null){ isbrek = true ; y--; break ; } numSer++ ; arrs.get(y)[x] = numSer+"" ; } if(!isbrek){ y--; } right(x, y); } //右 private void right(int x , int y){ x++ ; boolean isbrek = false ; int len = num - x ; if(arrs.get(y)[x]!=null){ return ; } for(;x<=len;x++){ if(arrs.get(y)[x]!=null){ isbrek = true ; x--; break ; } numSer++ ; arrs.get(y)[x] = numSer+"" ; } if(!isbrek){ x-- ; } up(x,y) ; //System.out.println("x:"+x+",y:"+y); } //上 private void up(int x , int y){ y-- ; boolean isbrek = false ; if(arrs.get(y)[x]!=null){ return ; } for(;y>=0;y--){ if(arrs.get(y)[x]!=null){ isbrek = true ; y++; break ; } numSer++ ; arrs.get(y)[x] = numSer+"" ; } if(!isbrek){ y++; } left(x, y); } //左 private void left(int x , int y){ x-- ; boolean isbrek = false ; if(arrs.get(y)[x]!=null){ return ; } for(;x>=0;x--){ if(arrs.get(y)[x]!=null){ isbrek = true ; x++; break ; } numSer++ ; arrs.get(y)[x] = numSer+"" ; } if(!isbrek){ x++ ; } bot(x, y); } }
,个人纪录
相关文章推荐
- 换了新工作,开一个博客记录一下
- 一个手机自动化测试高手的博客地址-先记录一下
- 换了新工作,开一个博客记录一下
- 没事写个幻灯片玩一下,发现了一个问题(已经改正但是不知道为什么)
- 记录:一个忘记了名字的算法改编篇
- 一个博客上的KVM文章,暂时看不完,记录一下
- 刚刚从微博转到博客,筛选一下不是随手记录的东西转过来,这是一个tableviewcontroller的发现
- 弄一个博客记录一下大学的学习生活
- 看到一个讲解struts2比较好的博客记录一下,分为三部分
- linux系统,面对一大堆目录,我想找一个文件,知道文件的名字,但是不知道在哪个目录下,怎么办
- 30岁 开通了一个博客,记录一下自己的生活
- 记录一下另外一个,在棋盘上自动寻找最近的坐标节点的算法
- 好久没更新博客了,今天给大家分享一下Android中的资源与国际化的问题,通常我们新建一个Android工程,目录结构如下图所示: 我们主要看一下layout与values目录,layou
- 新开一个博客,希望常驻,记录下自己的学习历程
- netty 中遇到的一个坑 SimpleInboundHandler,记录一下
- 新申请了一个博客,可以开始生活的一点一滴的记录了
- 已知13个球和一个天平,其中有一个坏球,但是不知道是轻还是重,请用天平秤三次,找到这个坏球。
- 最近开始学习ubuntu,想记录一下学习过程,也为在学习的朋友提供一个参考
- 写了一个作业 实现用户登录和注册的脚本,初学者写的不好,记录一下我的学习经历
- 记录一下C#+Oracle批量插入的一个方法