(优选算法)斐波那契数列模型

动态规划解题步骤:
首先,动态规划的题目主要的目的是为了填写表dp中的空缺部分。

1. 状态表示:就是要填写到qp表中那个值的涵义。

2. 状态转移方程:就是dp[i]值怎么得到的。

3. 初始化:初始化一些值防止,在执行状态方程的时候,出现下标越界。

4. 填表顺序:根据合顺序的到dp[i],确保下一个值所需要的条件已经得到。

5. 返回·值:返回题目所需要的结果。

1. 第N的泰波那契数

1.1 题目解析

由题可得:当一个数列长度大于等于3的情况下,满足当前数的值等于前三个数之和,要求得到第N个数的值(前三个数分别等于0、1、1)。

1.2 解题思路

通过动态规划的解题步骤,状态表示为:第i个泰波那契数的值,状态转移方程为:dp[i] = dp[i-3] + dp[i-2] + dp[i-1],初始化为 dp[0] = 0,dp[1] = dp[2] = 1,填表顺序:从下标小的到下标大的(从左向右),返回值:第N个下表对应的值。

首先,我们要先判断所给n的值,当n大于等于3时,我们可以通过一个fori循环初始化i=3、i<=n直接的到结果。

1.3 代码实现

优化后:

1.4 复杂度

时间复杂度:O(N)

空间复杂度: O(N)

优化后:

时间复杂度:O(N)

空间复杂度: O(1)

相关推荐
近津薪荼2 小时前
优选算法——分治(2):快速选择
算法
zyjyyds1132 小时前
和为0的四元组-双指针法(C语言实现)
c语言·数据结构·算法
炽烈小老头2 小时前
【每天学习一点算法 2026/03/16】电话号码的字母组合
学习·算法
Lee川2 小时前
时空迷宫探险记:从O(1)到O(2^n)的算法进化论
算法·面试
KangJX2 小时前
Matrix获取卡顿堆栈 (Point Stack)
算法·客户端
靠沿2 小时前
【优选算法】专题十三——队列+宽搜(BFS)
算法·宽度优先
ccLianLian3 小时前
算法·字符串哈希
算法·哈希算法
SongYuLong的博客3 小时前
Linux IPC进程通信几种方法
linux·运维·算法
像污秽一样3 小时前
算法设计与分析-习题6.1
数据结构·算法