三步问题
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]; }