欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > Day92 代码随想录打卡|动态规划篇---斐波那契数

Day92 代码随想录打卡|动态规划篇---斐波那契数

2024/10/25 21:17:14 来源:https://blog.csdn.net/m0_48909584/article/details/142031958  浏览:    关键词:Day92 代码随想录打卡|动态规划篇---斐波那契数

题目(leecode T509):

斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:

F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1

给定 n ,请计算 F(n) 。

方法:本题是动态规划的第一道题。动态规划的题目需要遵守五步走的过程:

  1. 确定dp数组(dp table)以及下标的含义
  2. 确定递推公式
  3. dp数组如何初始化
  4. 确定遍历顺序
  5. 举例推导dp数组

本题是一道入门级别的简单题,因为题目中已经给了我们所有需要的信息并不需要我们自己去推导。

dp数组含义dp[i]就代表第i个数字的斐波那契值

递推公式就是dp(n) = dp(n - 1) + dp(n - 2)

初始化dp[0]=0,dp[1]=1

因为第i个数的斐波那契值需要由i-1和i-2两个数得到,因此要从前向后遍历

按照计算前10个数的斐波那契值是0 1 1 2 3 5 8 13 21 34 55

题解:

class Solution {
public:int fib(int n) {if(n <= 1) return n;vector<int> dp(n + 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];}
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com