当前位置: 首页 > news >正文

动态规划(1. 第 N 个泰波那契数)

题目链接:第 N 个泰波那契数

解法(动态规划):

算法流程:
  • 1.状态表示:

怎么来?

======   题目经验     经验+题目要求     分析问题的过程中发现重复子问题    ========

这道题可以「根据题⽬的要求」直接定义出状态表示:dp[i] 表示:第 i 个泰波那契数的值。

  • 2. 状态转移方程:

=======    dp[i]等于什么      =============

题目已经非常贴心的告诉我们了: dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]

  • 3. 初始化:

=======      保证填表不越界      =============

从我们的递推公式可以看出, dp[i] i = 0 以及 i = 1 的时候是没有办法进⾏推导的,因为 dp[-2] dp[-1] 不是⼀个有效的数据。因此我们需要在填表之前,将 0, 1, 2 位置的值初始化。题⽬中已经告诉我们 dp[0] = 0, dp[1] = dp[2] = 1 。

  • 4. 填表顺序:

===========       填写当前状态时,所需状态已经填过了     ============

毫⽆疑问是「从左往右」。

  • 5. 返回值:

=========         题目要求+状态表示         ============

应该返回 dp[n] 的值。

代码:

C++

java:

空间优化:

由于现在主要学习使用动态规划,因此只是在这里提一下空间优化,后面三四十道题都不会讲,到后面背包问题再讲。

这里使用滚动数组进行优化

能使空间复杂度 

代码:

C++:

java:

http://www.dtcms.com/a/64583.html

相关文章:

  • 【prompt实战】知乎问题解答专家
  • Mac java全栈开发环境配置
  • 【Linux】在VMWare中安装Ubuntu操作系统(2025最新_Ubuntu 24.04.2)#VMware安装Ubuntu实战分享#
  • SSL 配置
  • Token登录授权、续期和主动终止的方案(Redis+Token(非jwtToken))
  • 用小程序制作好看的手机壁纸或者海报:Canva可画
  • 【面试题集合】
  • 【3-12 toupper(ch) tolower(ch) 和ASCII码 和全排列】
  • Android Retrofit 框架适配器模块深入源码分析(五)
  • Vmware Ubuntu 22.04 连接移动硬盘
  • 成为超人 21:超人怎么学?技能的学习,如编程
  • 【从零开始学习计算机科学】编译原理(五)语法制导翻译
  • grunt构建工具:scss转css
  • JavaWeb-servlet6中request和response的使用
  • 第J2周:ResNet50V2算法实现01(Tensorflow硬编码版)
  • ubuntu2404 安装 过程中 手动设置网络
  • 《深度剖析:鸿蒙系统下智能NPC与游戏剧情的深度融合》
  • 今天六大热点爆料
  • Redis 数据结构详解
  • 设计模式-结构型模式-装饰器模式
  • 信奥赛CSP-J复赛集训(模拟算法专题)(10):P2356 弹珠游戏
  • Linux:Ubuntu server 24.02 上搭建 ollama + dify
  • 【Golang】第三弹----运算符
  • 数据类设计_图片类设计之3_半规则图类设计(前端架构基础)
  • 【贪心算法4】
  • AI 变革药物研发:深势科技的云原生实践之路
  • 【每日学点HarmonyOS Next知识】tab拦截、组件方法做参数、自定义组件链式调用、多次观察者监听、横竖屏切换
  • C++20中的`std::endian`:深入理解大端/小端/本地字节序
  • wps word 正文部分段前段后间距调整无用
  • halcon机器人视觉(四)calibrate_hand_eye_stationary_3d_sensor