美文网首页
数台阶解法

数台阶解法

作者: peerben | 来源:发表于2019-05-26 07:22 被阅读0次

一道阿里的机试题
一共有N个台阶,一次走一个或两个台阶,问走完一共可以有多少种走法(多少个解)

/**
 * 一共有N个台阶,一次走一个或两个台阶,问走完一共可以有多少种走法(多少个解)
 * @param n 台阶数
 * @param eachList 一次可以走几个台阶 
 */
function stepCount(n: number, eachList: number[]) {
  let count = 0;
  const logSteps = (stepList: number[]) => console.log(`step => ${JSON.stringify(stepList)}`);

  function stepRecur(stepNum: number, stepHisList: number[]) {
    if (stepNum < 0) return;
    if (stepNum === 0) {
      count += 1;
      logSteps(stepHisList);
      return;
    }

    for (const step of eachList) {
      const remain = stepNum - step;
      const hisList = stepHisList.slice();
      hisList.push(step);

      stepRecur(remain, hisList);
    }
  }

  stepRecur(n, []);
  
  console.log(`total count ${count}`);
}

stepCount(4, [1, 2]);
Screen Shot 2019-05-26 at 7.33.22 AM.png

相关文章

  • 数台阶解法

    一道阿里的机试题一共有N个台阶,一次走一个或两个台阶,问走完一共可以有多少种走法(多少个解)

  • 爬楼梯

    这道题有很多中解法,主要是动态规划解法和基于斐波那契数列解法。 跳台阶问题(剑指Offer) 题目: 解法一 解题...

  • LeetCode 力扣 70. 爬楼梯

    题目描述(简单难度) 爬楼梯,每次走 1 个或 2 个台阶,n 层的台阶,总共有多少种走法。 解法一 暴力解法 用...

  • 数台阶

    第一阶。上面有点积水,有点滑,边缘上有泥,应该是有人在这里蹭过鞋。 第三阶。有一个香蕉皮,已经踩烂了,上面...

  • 回文数最优解

    回文数 非回文数 JAVA 解法

  • 求最大长度回文数

    解法1:暴力列举所有子数,再求回文数,时间复杂度O(n^3)解法2:遍历所有字符,查找所有基于此字符的回文数,时间...

  • 2018-11-26 两数之和

    题目: 1. 两数之和 解法: 解法一: 直接暴力法 解法二: 遍历一次数组即可. 新建一个HashMap, 存储...

  • 264、丑数 II | 算法(leetcode,附思维导图 +

    零 标题:算法(leetcode,附思维导图 + 全部解法)300题之(264)丑数 II 一 题目描述 二 解法...

  • 算法(leetode,附思维导图 + 全部解法)300题之(9)

    零 标题:算法(leetode,附思维导图 + 全部解法)300题之(9)回文数 一 题目描述 二 解法总览(思维...

  • 111. Minimum Depth of Binary Tre

    解法一:递归 解法二:bfs注意的是:如何一层记一个数,用for循环来遍历q;

网友评论

      本文标题:数台阶解法

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