自己写的一道经典算法
2011-11-16 14:57
218 查看
刚在浏览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();
}
}
}
自己也试着写了个算法,代码如下:
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();
}
}
}
相关文章推荐
- 一道经典面试题:计算n以内的素数(质数)算法
- 一道google的比较经典算法题
- 白话经典算法系列之十 一道有趣的GOOGLE面试题
- POJ1018 DP 一道自己独立思考出的DP题目 兼 12月份算法学习小结[更新]
- 【白话经典算法系列之十一】一道有趣的GOOGLE面试题 --【解法2】
- Topcoder的一道经典算法题
- 经典算法研究系列:三、动态规划算法解微软一道面试题[第56题]
- 白话经典算法系列之十 一道有趣的GOOGLE面试题
- 经典算法研究系列:三、动态规划算法解微软一道面试题[第56题]
- 精选微软经典的算法面试100题(第1-20题) -代码详解(题目选自“结构之法”大侠的博客,答案都是本菜鸟自己做的)
- 白话经典算法系列之十 一道有趣的GOOGLE面试题
- 【白话经典算法系列之十】 一道有趣的GOOGLE面试题
- 每天一道算法--经典兔子繁殖迭代问题(斐波那契数列)
- 白话经典算法系列之十 一道有趣的GOOGLE面试题
- 【白话经典算法系列之十一】一道有趣的GOOGLE面试题 --【解法2】
- 白话经典算法系列之十一 一道有趣的GOOGLE面试题 【解法2】
- 白话经典算法系列之十 一道有趣的GOOGLE面试题 .
- 一道经典的sql面试题!认为自己sql玩得挺转的进来!
- 白话经典算法系列之十一 一道有趣的GOOGLE面试题 --【解法2】
- 【白话经典算法系列之十一】一道有趣的GOOGLE面试题 --【解法2】 .