7.斐波那契数列
思路:
斐波那契数列的公式:f(n) = f(n-1) + f(n-2),其中f(0) = 0,f(1) = 1。
使用动态规划实现斐波那契数列:
- 确定状态:int[] dp,使用int[]数组来定义状态,dp[i]表示的就是上面的f(i) 。
- 状态转移方程:dp[i] = dp[i-1] + dp[i-2],直接套用斐波那契数列的公式即可
- 初始化:dp[0] = 0,dp[1] = 1,同上
代码实现:
public class Solution {
//使用动态规划解答,dp为动态规划数组
int[] dp;
public int Fibonacci(int n) {
if (n == 0) return 0;
if (n == 1) return 1;
//初始化
dp = new int[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];
}
}