动态规划思想

动态规划是一种算法思想,主要用于解决最优化问题,即在满足一定约束条件下,求解某个指标的最大值或最小值。动态规划通常用于具有重叠子问题和最优子结构性质的问题,可以通过将问题分解成子问题来求解,从而避免重复计算。

 

应用场景,例如:

1. 最长公共子序列问题:给定两个字符串,求它们的最长公共子序列。

2. 背包问题:给定一组物品和一个背包,每个物品有自己的重量和价值,在不超过背包容量的前提下,选择一些物品装入背包,使得装入的物品价值最大。

3. 最短路径问题:给定一个有向图和起点,求从起点到终点的最短路径。

4. 最大子段和问题:给定一个整数序列,求它的一个子序列,使得该子序列的和最大。

5. 编辑距离问题:给定两个字符串,求将一个字符串转换成另一个字符串所需的最少操作次数。

 

求解思路

1、定义最优解,一般用dp[i][j]表示

2、定义状态转移方程:需要分析,某个问题如何通过⼦问题来递归求解,也就是所谓的最优⼦结构。根据最优⼦结构,写出递归公式,也就是状态转移⽅程。

3、定义dp数组初始值

posted @   Adom_ye  阅读(60)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示