509. 斐波那契数
题:
斐波那契数,通常用 F(n)
表示,形成的序列称为 斐波那契数列 。该数列由 0
和 1
开始,后面的每一项数字都是前面两项数字的和。也就是:
F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
给你 n
,请计算 F(n)
。
解法1:
该解法为自己直接解
/**
* @param {number} n
* @return {number}
*/
var fib = function(n) {
// n为0/1
if (n === 0) {
return 0;
}
if (n === 1) {
return 1;
}
// n大于1
return fib(n-1) + fib(n-2)
};
解法2:
官方提供的动态规划思路
/**
* @param {number} n
* @return {number}
*/
var fib = function(n) {
// n为0/1
if (n < 2) {
return n;
}
let temp1 = 0;
let temp2 = 0;
let res = 1;
for (let i = 2; i <= n; i++) {
temp1 = temp2;
temp2 = res;
res = temp1 + temp2;
}
return res
};