Chapter 1 - 线性动态规划

线性动态规划是什么?

  顾名思义,线性动态规划推导问题是线性的,通俗地讲就是逐元素进行推导。拿上期《Prologue - 简述动态规划》 举过的例子(最长递增子序列)来讲,我们可以从两个角度描述线性动态规划

  • 状态定义:
    dp[n] 是 [0..n] 上问题最优解
  • 状态转移:
    dp[n] = max(dp[n-1]..dp[0]) + 1
    脱离这个例子,将其抽象,即
    dp[n] = f(dp[n-1]..dp[0])

  根据上面的状态定义和状态转移两个方面得知,大规模的问题只与小规模问题的解有关,所以我们解题的过程就是从小到大推导问题的解,这种方式就是线性动态规划。

线性动态规划分类

  我们可以将线性动态规划问题分为四类:

  1. 单串问题(施工中)
  2. 带维度的单串问题(未完成)
  3. 双串问题(未完成)
  4. 矩阵问题(未完成)

  下一节,我们将深入单串问题进行探索。

【入门级】初探动态规划 文章被收录于专栏

在这个专栏里,我会参考并简化其他资料,对常见的动态规划题进行类型划分,针对不同类型进行讲解。

全部评论

相关推荐

07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
06-18 13:28
已编辑
门头沟学院 Web前端
爱睡觉的冰箱哥:《给予你300的工资》,阴的没边了
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务