Chinaunix首页 | 论坛 | 博客
  • 博客访问: 270087
  • 博文数量: 170
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1709
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-06 18:01
文章分类

全部博文(170)

文章存档

2016年(11)

2015年(130)

2014年(29)

分类: Java

2015-03-15 13:34:51

Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.

For example,
Given n = 3,

You should return the following matrix:
[
 [ 1, 2, 3 ],
 [ 8, 9, 4 ],
 [ 7, 6, 5 ]
]


 public int[][] generateMatrix(int n) {
      if(n<0)
return null;
        int [][]result=new int[n][n];
        int k=1;
        int a=0;
        int b=-1;//第一个会马上加到0的
        int j;
        int times=2*(n-1)+1;
        
        for(int i=0;i         switch (i%4) {
case 0:
++b;
j=n-(i+1)/2;//计算马上要走的个数
        for(int m=0;m         result[a][b]=k;
        ++k;
        ++b;
        }
        --b;//要回退
break;
case 1:
j=n-(i+1)/2;
++a;
        for(int m=0;m         result[a][b]=k;
        ++k;
        ++a;
        }
        --a;
break;
case 2:
j=n-(i+1)/2;
--b;
        for(int m=0;m         result[a][b]=k;
        ++k;
        --b;
        }
        ++b;
break;
default:
j=n-(i+1)/2;
--a;
        for(int m=0;m         result[a][b]=k;
        ++k;
        --a;
        }
        ++a;
break;
}
       
        }
        return result;
        
        
    }
阅读(201) | 评论(0) | 转发(0) |
0

上一篇:SpiralMatrix

下一篇:Merge Sorted Array

给主人留下些什么吧!~~