题目描述
题目解析
形如 F(N) = F(N-1) + F(N-2) N>1的就是斐波那契数列
以N = 3为例: F(3) = F(2) + F(1) = (F(1) + F(0)) + F(2))
解题思路_动态规划
- 状态定义:设dp为一维数组,其中dp[i]的值代表斐波那契数列的第i个数字;
- dp[i+1] = dp[i] + dp[i-1];
- 初始状态:dp[0] = 0, dp[1] = 1;
- 返回值:dp[n];
注意点
答案需要取模
在JS中,取模用 %
例如:7%4 = 1
解题过程
/**
* @param {number} n
* @return {number}
*/
var fib = function(n) {
let temp = [0, 1];
for (let i = 0; i < n; i++) {
temp[i+2] = (temp[i+1] + temp[i]) % 1000000007;
}
return temp[n];
};