首页新闻找找看学习计划

javascript:很简单的算法问题

0
悬赏园豆:20 [待解决问题]

共有3个问题:

比如有个数组是[1,2,3,4,5],循环他,依次输出2,1,0,1,2;如果数组是[1,2,3,4,5,6]呢,则依次输出2,1,0,0,1,2..

也许这个比较简单,因为我居然都算出来了。如下:

for(var a=0;a<5;a++) {
                            i = Math.floor(Math.abs(a-(count-1)/2));
                        }

不过我担心效率不高。。求优化

第二,再求另一种算法,数组仍然是那个数组,但输出变为0,1,2,1,0或0,1,2,2,1,0....也就是倒序了一下。

求高手支招

十年灯的主页 十年灯 | 菜鸟二级 | 园豆:356
提问于:2012-04-28 17:19
< >
分享
所有回答(2)
1

算法上,已经没有什么可以优化的了。原生Math对象,已经是最优化的了。你可以这么写。

for(var i = 0; l = a.length; i<l;i++){

 

}

主要是把数组存在一个变量a里面,再循环时,再把a的长度length缓存在l中。

gitbuild | 园豆:587 (小虾三级) | 2012-04-28 17:43
0

同意,这样写就很好了,还能怎么改进呢,期待。。。

KivenRo | 园豆:1722 (小虾三级) | 2012-04-28 17:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册