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

动态规划解题步骤:
首先,动态规划的题目主要的目的是为了填写表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)

相关推荐
故事和你9112 小时前
洛谷-算法1-2-排序2
开发语言·数据结构·c++·算法·动态规划·图论
Fcy64812 小时前
算法基础详解(三)前缀和与差分算法
算法·前缀和·差分
kvo7f2JTy12 小时前
基于机器学习算法的web入侵检测系统设计与实现
前端·算法·机器学习
List<String> error_P13 小时前
蓝桥杯最后几天冲刺:暴力大法(一)
算法·职场和发展·蓝桥杯
迈巴赫车主14 小时前
蓝桥杯3500阶乘求和java
java·开发语言·数据结构·职场和发展·蓝桥杯
流云鹤14 小时前
Codeforces Round 1090 (Div. 4)
c++·算法
wljy114 小时前
第十三届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(个人见解,已完结)
c语言·c++·算法·蓝桥杯·stl
高一要励志成为佬14 小时前
【数据结构】算法复杂度
数据结构
清空mega15 小时前
C++中关于数学的一些语法回忆(2)
开发语言·c++·算法
香蕉鼠片15 小时前
数据结构八股(一)
数据结构·算法