题目
解题
注意当 n = 0 时,返回值为 1。
以下题目解题方法相同,区别点是根据题干,动态转移方程会有差异。
题目 | 解题 |
---|---|
面试题 08.01. 三步问题 | 三步问题题解 |
剑指 Offer 10- I. 斐波那契数列 | 斐波那契数列题解 |
70. 爬楼梯 | 爬楼梯 |
剑指Offer 10- II 青蛙跳台阶问题 | 青蛙跳台阶问题 |
解题一:动态规划
// javascript
var numWays = function(n) {
const vec = [1, 1, 2];
if (n < 3) return vec[n];
const MOD = 1e9 + 7;
let p = 1, q = 2, r;
for (let i = 3; i <= n; ++i) {
r = (p + q) % MOD;
p = q;
q = r;
}
return r;
};
解题二:矩阵快速幂
[ F ( n − 1 )