题目描述
n<=39
思路:这是一个众所周知的问题,第一想法是什么?递归,迭代,矩阵快速幂,动规?有很多解法,这里给出两种的。递归和动规。 在讨论区中看到大佬写的动规。资源消耗很少。矩阵快速幂理论上更快。
资源消耗:
739 ms | 472K |
代码【递归版】:
class Solution {
public:
int Fibonacci(int n) {
if(!n) {
return 0;
} else if(n==1 || n==2) {
return 1;
} else
return Fibonacci(n-1)+Fibonacci(n-2);
}
};
资源消耗:
5 ms | 464K |
代码【DP版】:
class Solution {
public:
int Fibonacci(int n) {
int f = 0,g = 1;/// g表示f(n+1), f表示f(n)
while(n--) {
g += f;
f = g - f;
}
return f;
}
};
5 ms | 464K |