标签:ret item scribe hellip 代码 style bsp cti func
function jump(n){
if(n<=2){
return n;
}
if(n>2){
var arr = [1,2];
for(var i=3;i<=n;i++){
var res=0;
for(var j=0;j<arr.length;j++){
res += arr[j]
}
arr.push(res+1)
}
return arr[n-1]
}
}
然而看了大牛的代码:
function jumpFloorII(number)
{
return 1<<(--number);
}
你就说你服不服吧
function jumpFloorII(number)
{
return Math.pow(2,number-1)
}
换种思路:
因为n级台阶,第一步有n种跳法:跳1级、跳2级、到跳n级
跳1级,剩下n-1级,则剩下跳法是f(n-1)
跳2级,剩下n-2级,则剩下跳法是f(n-2)
所以f(n)=f(n-1)+f(n-2)+...+f(1)
因为f(n-1)=f(n-2)+f(n-3)+...+f(1)
function jumpFloorII(number)
{
if(number==1||number==2){
return number
}
return 2*jumpFloorII(number-1)
}
JavaScript算法系列之-----------------变态跳台阶(JS实现)
标签:ret item scribe hellip 代码 style bsp cti func
原文地址:https://www.cnblogs.com/manru75/p/10452013.html