美文网首页
动态规划 - 台阶问题

动态规划 - 台阶问题

作者: 不得不爱XIN | 来源:发表于2019-05-20 22:25 被阅读0次

问题

有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法

方案

递归

function getResultByRecursion(n){
  if (n < 1) {
    return 0;
  }
  if (n == 1) {
    return 1;
  }
  if (n == 2) {
    return 2;
  }
  return getResultByRecursion(n - 1) + getResultByRecursion(n - 2);
}

console.log(getResultByRecursion(10)) //89

时间复杂度为2的n次方

备忘录算法

let catchData = {}; //缓存已经计算过的步法

function getResultByMap(n){
  if (n < 1) {
    return 0;
  }
  if (n == 1) {
    return 1;
  }
  if (n == 2) {
    return 2;
  }
  if (catchData[n]) {
    return catchData[n];
  } else {
    const value = getResultByMap(n - 1) + getResultByMap(n - 2);
    catchData[n] = value;
    return value;
  }
}

console.log(getResultByMap(10)) //89

时间复杂度和空间复杂度都为O(n)

动态规划 (从底向上)

function getResultByDP(n){
  if (n < 1) {
    return 0;
  }
  if (n == 1) {
    return 1;
  }
  if (n == 2) {
    return 2;
  }

  let a = 1;
  let b = 2;
  let temp = 0;

  for (let i = 3; i < n + 1 ; i++) {
    temp = a + b;
    a = b;
    b = temp;
  }
  return temp;
}

console.log(getResultByDP(10)) //89

时间复杂度为O(n),空间复杂度为O(l)

相关文章

  • 动态规划 - 台阶问题

    问题 有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法...

  • 大数据算法系列15:动态规划

    一. 动态规划概念 伪代码: 重构: 二. 动态规划案例 2.1 青蛙跳台阶 题目:一只青蛙一次可以跳上1级台阶,...

  • 动态规划之-上台阶问题

    最近在刷题,碰到了上台阶问题,据说这也是Google的面试题,今天来整理一下。 问题描述 有一楼梯共m级,若每次只...

  • 动态规划2:上台阶问题

    有一个共N级的台阶,一次可以走1级或者2级,问从平地上出发到最高点有多少中走法。 分析: 从终点来看,其走法为倒数...

  • [算法] - 上台阶问题(动态规划)

    1. 问题 有十级台阶,每次只能上一级或者两级,问一共有多少种组合。 2. 代码 3. 参考 漫画:什么是动态规划...

  • 台阶问题(动态规划算法)

    问题描述: 有个高度为10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要到达最上面问一共有多少种走...

  • LeetCode | 面试题10- II. 青蛙跳台阶问题【剑指

    LeetCode 面试题10- II. 青蛙跳台阶问题【剑指Offer】【Easy】【Python】【动态规划】 ...

  • 动态规划算法(一)

    概述 本篇回忆了动态规划问题的基本特征和求解的基本套路。简单分析了问题走台阶问题和最大连续子数组问题 什么是动态规...

  • 动态规划法(九)想要更多例子?

      本文将会介绍三个用动态规划法解决的例子,分别是: 楼梯台阶问题 二项式系数求解 最大乘积子数组问题 楼梯台阶问...

  • 上台阶问题-递归和动态规划

    上台阶是一个常见的问题,解法主要有递归和利用动态规划,这篇文章简单介绍下递归解法和动态规划,以及对应的代码。递归解...

网友评论

      本文标题:动态规划 - 台阶问题

      本文链接:https://www.haomeiwen.com/subject/lcxrzqtx.html