• 动态规划的理解


    最近看了一篇讲解动态规划的知乎文章,讲的很清楚,使我对动态规划题目的解答思路更加清晰。

    1、什么情况下会用到动态规划呢?

    动态规划是解决决策过程最优化问题的常用方法。

    2、动态规划的基本思想

    a)将问题划分为若干个互相联系的子问题,先求出子问题的解,然后通过子问题的解求出问题的解。

    b)对于重复出现的子问题,只需在第一次遇到时计算,然后将结果保存起来,之后遇到相同子问题直接使用结果值,不必再重复计算。保存子问题的结果一般采用数组,一维数组或二维数组。

    3、动态规划问题的解题思路

    a)定义子问题表达式,即数组元素的含义。假如使用一维数组dp存储子问题结果。那么元素值dp[i]表示什么意思?

    b)找出数组元素之间的关系。方法类似数学的归纳法。比如dp[n]与dp[n-1]... dp[1]等的关系是什么,比如:dp[n] = dp[n-1] + dp[n-2]。

    c)找出初始值。找出各个元素的递推关系之后,得有一个初始的值,这样才能一步步计算得到dp[n]的值。

    要求什么,就将dp[n]定义成什么。

    具体算法举例自己私下实践。

    参考:https://zhuanlan.zhihu.com/p/91582909

  • 相关阅读:
    docker入门
    spring aop切面入门
    java 拉姆达 lamdba get
    Spring 3
    Spring 进阶二
    腾讯云 视频 点播 视频上传接口
    js 实时获取后台数据 Spring
    Spring 进阶一
    hibernate 第四天 重点查询的方式
    hibernate 第三天
  • 原文地址:https://www.cnblogs.com/mydesky2012/p/14551703.html
Copyright © 2020-2023  润新知