
因为f(n) = f(n-1) + f(n-2),因此在计算的时候只需要保存上两次的值,如f1,f2
/**
* @param {number} N
* @return {number}
*/
var fib = function(N) {
if(N === 0) return 0;
let f1 = 1;
let f2 = 1;
while(N-->2){
f1 += f2;
f2 = f1 - f2;// 把f2重置为上次的f1,也就是加了一个f2的f1再减去f2
}
return f1;
};
本文介绍了一种高效计算斐波那契数列的方法,通过仅保留前两个数值进行迭代计算,避免了传统递归算法的重复计算,显著提高了计算效率。
1874

被折叠的 条评论
为什么被折叠?



