动态规划
- 长度为n的dp数组;
- 前两项初始化为1;
- 确定递推关系:dp[i]=dp[i-1]+dp[i-2];
- 返回第n项:dp[n-1]。
class Solution {
public:
int Fibonacci(int n) {
vector<int> dp(n);
dp[0] = 1;
dp[1] = 1;
for (int i = 2; i < n; i++) {
dp[i] = dp[i - 1] + dp[i - 2];
}
return dp[n - 1];
}
};
class Solution {
public:
int Fibonacci(int n) {
int dp[2];
dp[0] = 1;
dp[1] = 1;
for (int i = 2; i < n; i++) {
int sum = dp[0] + dp[1];
dp[0] = dp[1];
dp[1] = sum;
}
return dp[1];
}
};