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

线性DP - 学习笔记

动态规划:用空间代替重复计算。

有些递归在展开计算时,总是重复调用一个子问题的解,这种重复调用的递归变成动态规划很有收益。

如果每次展开都是不同的解,或者重复调用的现象很少,那么没有改动态规划的必要。

任何动态规划问题都一定对应着一个重复调用行为的递归。

所以任何动态规划的题目都一定可以从递归入手,逐渐实现动态规划的方法。

例题一:斐波那契数

题目链接

实际难度:\(\color{F39C11}{{普及-}}\)

考察知识点

  • 动态规划 - 线性DP

思路分析(递归)

由斐波那契数列:\(f_i= \begin{cases} 0,&i=0\\ 1,&i=1\\ f_{i-2}+f_{i-1}, &i \ge 2 \end{cases}\) 可得,对于每一个 \(f_i(i \ge 2)\),只需要求出 \(f_{i-1}\)\(f_{i-2}\) 即可。

如图所示:

即可求出 \(f_3\) 的值。

复杂度分析(递归)

时间复杂度

\[\begin{aligned} T(n)&=\underbrace{T(n-1)+T(n-2)}_{递归}\\ &=O(2^n) \end{aligned} \]

空间复杂度

  • 主要存储:\(O(n)\)
  • 临时变量:\(O(1)\)
  • 总空间:\(O(n)\)

C++代码

// Problem: 509. 斐波那契数
// Contest: LeetCode
// URL: https://leetcode.cn/problems/fibonacci-number/
// 
// Powered by CP Editor (https://cpeditor.org)// 定义一个名为Solution的类,用于封装斐波那契数的求解方法
class Solution {
// 公有成员区域,表明以下函数可以被类外部调用
public:// 定义一个递归辅助函数f,参数i为需要计算的斐波那契数的索引,返回值为对应的斐波那契数int f(int i){// 递归终止条件1:当索引i为0时,根据斐波那契数定义,返回0if(i==0) return 0;// 递归终止条件2:当索引i为1时,根据斐波那契数定义,返回1if(i==1) return 1;// 递归计算:第i个斐波那契数等于第i-1个与第i-2个斐波那契数之和,返回计算结果return f(i-1)+f(i-2);}// 定义LeetCode要求的接口函数fib,参数n为目标斐波那契数的索引,返回对应的斐波那契数int fib(int n) {// 调用辅助函数f计算第n个斐波那契数,并返回结果return f(n);}
};
http://www.hskmm.com/?act=detail&tid=21566

相关文章:

  • 2025 年最新制氮机厂家权威推荐排行榜:聚焦行业优质厂商综合实力,助力企业精准选购优质设备制氮机产生氮气/氮气纯化/设备改造/维修/保养/半导体用制氮机厂家推荐
  • 2025 年氨分解设备厂家最新推荐榜单:含半导体 / 冶金 / 稀土行业专用设备及品牌综合实力排名
  • 2025 阳台装修公司推荐榜:最新优质厂商资质 / 技术 / 服务测评,杭州浙江地区优选指南杭州阳台装修/浙江阳台装修公司推荐
  • bitset
  • 网易雷火胡志鹏:AI驱动未来,游戏科技重塑虚拟创造力与现实生产力
  • idea打包推送maven仓库及同时推送到不同的maven仓库,本地和云上的腾讯云
  • 2025 阳台柜厂家最新推荐榜:企业资质 / 材质 / 服务全景解析,选对品牌少走弯路杭州阳台柜/浙江阳台柜厂家推荐
  • 2025 年除湿机厂家最新权威推荐排行榜:实力厂家技术口碑评测及场景适配选购指南吊顶/泳池/车库/防爆/调温/新风除湿机厂家推荐
  • 2025 年液氨蒸发器厂家联系方式,众众电热:多领域加热设备供应与定制化解决方案提供商
  • 【Batch】批量修改文件后缀
  • 【solace】基于docker部署solace环境
  • 2025 年阿里巴巴开通实力商家店铺开通代运营 / 阿里巴巴新手开店全托管代运营公司推荐:南鑫粤网络 —— 全域运营解决方案与实战服务优势解析
  • Vue-element-admin开发指南 - 教程
  • 2025 年国内工作服厂家最新推荐排行榜:聚焦工艺设计与服务,精选权威榜单助企业采购冬季/春季/工人/车间/防静电/餐饮/劳保工作服厂家推荐
  • ClickHouse 窗口函数使用详解(一) - 若
  • ClickHouse 窗口函数详解:告别 GROUP BY 的局限性,实现灵活数据分析 - 若
  • 简单WEB网站
  • AtCoder AGC044 总结
  • UOJ#32【UR #2】跳蚤公路 题解
  • 2025 年窗帘杆源头厂家最新推荐榜单:包含支架 / 环 / 全自动 / 可伸缩等多类产品及配件,帮助选到品质与交期双优的优质厂家
  • 2025 年电动窗帘厂家推荐榜单:聚焦国内优质企业定制实力与口碑,为采购者提供最新选择参考电动窗帘系统/电机/轨道/配件/智能电动窗帘厂家推荐
  • Vue3 使用注意事项
  • ClickHouse ReplacingMergeTree 去重陷阱:为什么你的 FINAL 查询无效? - 若
  • js中?? 和 || 的区别详解
  • 微信机器人API接口| 个人开发者必备
  • 直击现场! “ 直通乌镇 ”开源赛复赛收官,OpenCSG担任评委,十强藏着哪些产业机会?
  • Python 列表生成式、字典生成式与生成器表达式
  • java 解析json字符串,获取特定的字段值,JsonObject
  • python 批量提取txt数据中的值写入csv
  • 回忆中学的函数