动态规划思想

Adam_ye / 2023-08-17 / 原文

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

 

应用场景,例如:

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

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

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

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

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