一、方法一 —— 斐波那契数列
/**
* @param {number} n
* @return {number}
*/
var climbStairs = function(n) {
// 斐波那契数列
const fm = Math.sqrt(5);
const fz = Math.pow((1 + fm)/2,n+1) - Math.pow((1 - fm)/2,n+1);
return fz/fm;
};
二、方法二 —— 动态规划
/**
* @param {number} n
* @return {number}
*/
var climbStairs = function(n) {
// 动态规划
const dp = [];
// 初始化n=0和1的情况
dp[0] = 1;
dp[1] = 1;
for (let i = 2; i <= n; i++) {
dp[i] = dp[i-1] + dp[i-2];
}
return dp[n];
};