力扣青蛙跳台阶 动态规划宝宝巴士入门算法

44 阅读1分钟

青蛙跳台阶底层逻辑

本质上青蛙跳台阶就是个斐波那契数列问题

image.png 按照公式用代码照抄型解法:

var climbStairs = function(n) {
    const sqrt_5 = Math.sqrt(5);
    const fib_n = Math.pow((1 + sqrt_5) / 2, n + 1) - Math.pow((1 - sqrt_5) / 2,n + 1);
    return Math.round(fib_n / sqrt_5);
};

按照数组方法好理解版本:

var climbStairs = function(n) {
    let arr = []
    let arr[0] = 1
    let arr[1] = 1
    for (let i=2; i<n.length; i++) {
      arr[i]=arr[i-1]+arr[i-2]
    }
    return arr[n]
};