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

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

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

2. 状态转移方程:就是dpi值怎么得到的。

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

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

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

1. 第N的泰波那契数

1.1 题目解析

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

1.2 解题思路

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

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

1.3 代码实现

优化后:

1.4 复杂度

时间复杂度:O(N)

空间复杂度: O(N)

优化后:

时间复杂度:O(N)

空间复杂度: O(1)

相关推荐
Logic1018 小时前
C语言/数据结构二维数组题解:找出行列O个数均为偶数的格子——奇偶性预处理+二次遍历
c语言·数据结构·算法·二维数组·时间复杂度·动态内存分配·奇偶性
程序猿阿森8 小时前
【机器学习实战】朴素贝叶斯算法详解:从概率基础到商品评论情感分析
算法·机器学习·概率论
xxwl5858 小时前
区域赛算法模版第五章---数学与数论
c++·笔记·算法
看浪的路人8 小时前
第6讲:Agent 安全体系——Prompt 注入防御、工具调用审计与输出合规
人工智能·算法
局部有解8 小时前
LeetCode Hot100 438 找到字符串中所有字母异位词
c++·算法·leetcode
垆边人似月.9 小时前
移动长度 k 子串使字符串变成回文
数据结构·算法
David猪大卫9 小时前
【C++修炼】string类:string类的模拟实现
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
pride.li9 小时前
第12章 Python 教程-流程控制:循环结构
linux·服务器·python·算法
海绵宝宝转agent9 小时前
2026-10-16 4算法+1面经
算法
小poop10 小时前
基础排序算法详解——插入、选择与交换排序
算法·排序算法