三步问题

2020-06-01
三步问题

三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,

小孩一次可以上1阶、2阶或3阶。实现一种方法,

计算小孩有多少种上楼梯的方式。结果可能很大,

你需要对结果模1000000007。

题解:
思路1:动态规划
/**
 * @param {number} n
 * @return {number}
 */
var waysToStep = function (n) {
  let m = 1e9+7;
  let dp = [0,1,2,4]; // 存没一个n对应的可能数 方便后面查找
  for(let i = 4; i<n+1; i++){
      dp[i] = (dp[i-1] + dp[i-2] + dp[i-3])%m; // 每一项n的可能数与前面3项有关
  }
  return dp[n];
}
原文地址:https://www.cnblogs.com/lanpang9661/p/13023470.html