java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 |
---|
什么是斐波那契数列? |
---|
解题思路 |
---|
动态规划思考5步曲 |
---|
- 递推公式
- dp数组初始化
- 数组遍历顺序(因为斐波那契数列是一维的,只需要一重循环,无需考虑这个)
- 打印dp数组(自己生成dp数组后,将dp数组输出看看,是否和自己预想的一样。)
代码 |
---|
class Solution {
public int fib(int n) {
int length = n>=1?n:1;//避免n给的太小,例如n = 0时,dp[1] = 1;这条代码会下标越界
//初始化DP数组,一维数组即可,头两个元素固定为0和1
int dp[] = new int[length+1]; dp[0] = 0; dp[1] = 1;
//其余元素为它的前两个元素的和
for(int i = 2;i<=n ; i++){
dp[i] = dp[i-1]+dp[i-2];
}
return dp[n];
}
}