由于对动态规划DP算法 掌握得不是很好,所以决定进行动态规划专项训练。
动态规划五部曲
①确定dp[i]含义
②递推公式
③dp数组如何初始化
④遍历顺序
⑤打印dp数组(debug)
除了第五条在力扣上不开会员无法实现外,其余四项就是做出dp类型题目的关键,后续的训练中将按照这四步来进行解题。
力扣第509题-斐波那契数

1.本题的动态规划四部曲:
①dp[i]含义:代表第i个斐波那契数的值。
②递推公式:题目中已经告诉我们了,dp[i] = dp[i – 1] + dp[i – 2]。
③初始化:也在题目中,dp[0] = 0,dp[1] = 1。
④遍历顺序:从前向后
2.本题是动态规划入门级题目,可写出完整代码如下:
1. int fib(int n) {
2. int dp[31] = {0};
3. dp[0] = 0;
4. dp[1] = 1;
5.
6. if (n >= 2){
7. for (int i = 2; i <= n; i++){
8.


665

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



