剛在瀏覽ITeye論壇時看到這麼一個貼子,深圳公司的一道面試題目,貼子連接爲:http://www.iteye.com/topic/545378#1288681;面試
本身也試着寫了個算法,代碼以下:算法
public class test{
public static int[][] init(int length){
int[][] arry=new int[length][length];
int value=1,i=0,j=0;
for(int p=0;p<(length/2)+(length%2);p++){
while(j<length-p){
arry[i][j++]=value++;
}
while(i<length-1-p){
arry[++i][j-1]=value++;
}
j--;
while(j>p){
arry[i][--j]=value++;
}
i--;
while(i>p){
arry[i--][j]=value++;
}
j++;i++;
}
return arry;
}
public static void main(String[] args) {
int[][] arry=init(7);
for(int x=0;x<arry.length;x++){
for(int y=0;y<arry[0].length;y++){
System.out.print(arry[x][y]+" ");
}
System.out.println();
}
}
}ide