美文网首页
数据结构与算法(第二季):动态规划

数据结构与算法(第二季):动态规划

作者: 萧1帅 | 来源:发表于2022-01-17 09:11 被阅读0次

    动态规划(Dynamic Programming)

    一、概念

    • 动态规划,简称DP,是求解最优化问题的一种常见策略。

    二、练习

    322. 零钱兑换

    image image
    • 该实现属于暴力递归(自顶向下,出现了重叠子问题),优化方案是记忆化搜索(自顶向下)
    image
    • 我们还可以将记忆化搜索(自顶向下)继续优化,即递推(自底向上)
    image
    • 时间/空间复杂度为O(n)

    • 如果动态传入硬币面值:

    image

    三、动态规划的常规步骤

    • 动态规划中的“动态”,可以理解为是“会变化的状态”。

      1. 定义状态(状态是原问题、子问题的解),比如定义dp(i)的含义。
      2. 设置初始状态(边界),比如设置dp(0)的值。
      3. 确定状态转移方程,比如确定dp(i)和dp(i-1)的关系。
    • 动态规划就是将复杂的原问题,拆解成若干个简单子问题,并且每个子问题只计算一次,且存储他们的结果。

    相关文章

      网友评论

          本文标题:数据结构与算法(第二季):动态规划

          本文链接:https://www.haomeiwen.com/subject/ceiacrtx.html