题解 | #跳台阶#

跳台阶

http://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4

JavaScript:部分参考https://blog.nowcoder.net/n/bd31ad8896db41a6882756245cc3930b?f=comment
解法一:直接递归 205*8344

function jumpFloor(number)
{
    if (number<=1) return 1;
    return jumpFloor(number-1) + jumpFloor(number-2);
}

解法二:记忆化搜索---(不完全理解)51*8004
能减少计算,降低时间复杂度。
解法一的改进,通过数组dp将计算过的保存下来。

function jumpFloor(number)
{
    let dp = new Array()
    return fib(number,dp)
}
function fib(n,dp){
//     dp.length = n
    if (n<=1) return 1;
    if(dp[n] != undefined) return dp[n]
    return dp[n] = fib(n-1,dp) + fib(n-2,dp);
}

解法三:动态规划
解法二是从上往下递归,然后再从下往上回溯,次方法直接从下往上求得答案
2、53*8012

function jumpFloor(number)
{
    if(number ==0 || number ==1)return number;
    let a = 1, b = 1, c;
    for(let i = 2; i<=number; ++i){
        c = a + b;
        a = b;
        b = c;
    }
    return c;
}
牛客算法题 文章被收录于专栏

牛客算法题记录

全部评论

相关推荐

10-18 13:01
已编辑
西安理工大学 C++
小米内推大使:建议技能还是放上面吧,hr和技术面试官第一眼想看的应该是技能点和他们岗位是否匹配
点赞 评论 收藏
分享
jack_miller:杜:你不用我那你就用我的美赞臣
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务