题目

假如你在爬楼梯,楼梯一共有N层,但你每次爬楼梯只能走一步或两步,计算共有多少种走法? 斐波那契数列,又叫兔子数列 百度百科

方法1

  1. // n=1 return 1
  2. // n=2 return 2
  3. // n=3 return 3
  4. // n=4 return 5
  5. function climbStairs(n) {
  6. return n < 3 ? n : climbStairs(n-1) + climbStairs(n-2)
  7. };

方法2

  1. /**
  2. * @param {number} n
  3. * @return {number}
  4. */
  5. var climbStairs = function(n) {
  6. const dp = [];
  7. dp[0] = 1;
  8. dp[1] = 1;
  9. //从第二个开始
  10. for(let i = 2; i <= n; i++) {
  11. dp[i] = dp[i - 1] + dp[i - 2];
  12. }
  13. return dp[n];
  14. };