zoukankan      html  css  js  c++  java
  • 动态规划思路

    Dynamitic Plan

    • 动态规划:

      • 试图仅仅解决每个子问题一次,从而减少计算量;一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下一次需要使用时直接查表,避免重复计算
    • 使用要求:

      • 计算时有大量重叠子问题时,求最优解
      • 最优子结构:大问题的最优解可以由小问题的最优解推出
      • 无后效性:一旦f(n)确定,那么之后直接调用它的值就可以,不要再去关心 f(n)的计算过程

    流程

    • 一般流程
      • 一般流程就是三步:暴力的递归解法 -> 带备忘录的递归解法 -> 迭代的动态规划解法。
    • 思考流程
      • '找到状态和选择' -> '明确' dp 数组/函数的定义 -> 寻找状态之间的关系。

    解析

    1. 状态定义 :dp[i]的值代表什么
    2. 转移方程 :根据情况题目要求定义,形如dp[i+1]=dp[i]+dp[i-1]
    3. 初始状态 :根据情况题目要求定义,形如dp[0]=?,dp[1]=?.....
    4. 返回值 :dp[n]为什么
  • 相关阅读:
    全面理解面向对象的 JavaScript
    账号
    移动端 前端框架 amaze ui
    javascript 精典案例分析一览
    前端事件系统(一)
    周总结12
    周总结11
    相比较于其他的同类软件
    团队冲刺第十五天
    团队冲刺第十四天
  • 原文地址:https://www.cnblogs.com/luckyCoder/p/12732992.html
Copyright © 2011-2022 走看看