题目
思路(动态规划的5个步骤)
- 确定dp数组以及下标的含义:dp[i]就是结果
- 递推公式:F(n) = F(n-1) + F(n-2)
- dp数组初始化值:F(0) = 0,F(1) = 1
- 确定遍历顺序:数组下标从小到大
- 举例验证
代码实现
public class Test01 {
public static void main(String[] args) {
System.out.println(fib(3));
}
public static int fib(int n) {
if (n == 0) {
return 0;
}
if (n == 1) {
return 1;
}
// 确定数组的大小,创建数组,下标的含义:dp[n]代表的时候我们要的结果
int dpSize = n + 1;
int[] dp = new int[dpSize];
// 设置数组的初始值
dp[0] = 0;
dp[1] = 1;
// 遍历顺序,n从小到大
for (int i = 2; i < dpSize; i++) {
dp[i] = dp[i - 1] + dp[i - 2];
}
return dp[n];
}
}