思路:
dp
储备:
问题重点:
1、动规五步:
1、dp数组含义
2、递归公式
3、初始化
4、定遍历顺序
5、推导一下
最后:
dp版:
class Solution {//dp版
public:
int fib(int n) {
if (n<=1) return n;
vector<int> dp(n+1);//第i个的数值是dp[i]
dp[0]=0;//初始化
dp[1]=1;
for (int i=2;i<=n;i++) {
dp[i]=dp[i-1]+dp[i-2];//递推公式
}
return dp[n];
}
};
递归版:
class Solution {
public:
int fib(int n) {
if (n==0) return 0;
if (n==1) return 1;
return fib(n-1)+fib(n-2);
}
};

335

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



