class Solution {
public:
int fib(int n) {
if (n <2) return n;
// dp[i]含义:第i个数的斐波那契值
std::vector<int> dp(2);
dp[0] = 0, dp[1] = 1;
for (int i = 2, sum; i<n+1; i++){// 1 1 2 3
sum = dp[0]+dp[1];
dp[0] = dp[1];
dp[1] = sum;
}
return dp[1];
}
};
class Solution {
public:
int fib(int n) {
if (n <2) return n;
// dp[i]含义:第i个数的斐波那契值
std::vector<int> dp(n+1); // 算上0有n+1个数
dp[0] = 0, dp[1] = 1;
for (int i = 2; i<n+1; i++) dp[i] = dp[i-1]+dp[i-2];
return dp[n];
}
};
class Solution {
public:
int fib(int n) {
if (n < 2) return n;
return fib(n-1) + fib(n-2);
}
};