标签: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