动态规划算法经典案例 JS

      • 动态规划算法
      • 案例一

动态规划算法

难点:从实际问题中抽象出动态规划表dp,dp一般是一个数组,可能是一维的也可能是二维的,也可能是其他的数据结构。

关键点:

  1. 最优化原理,也就是最优子结构性质。这指的是一个最优化策略具有这样的性质,无论过去状态和决策如何,对前面的决策所形成的状态而言,余下的决策必须构成最优策略,简单来说就是一个最优化策略的子策略总是最优的,如果一个问题满足最优化原理,就称其有最优子结构性质。
  2. 无后效性,指的是某个状态下的决策的收益,只与状态和决策相关,与达到该状态的方式无关。
  3. 子问题的重叠性,动态规划将原来指数级的暴力搜索算法改进到了具有多项式时间复杂度的算法,其中的关键在于解决了冗余,重复计算的问题,这是动态规划算法的根本目的。

总体来说,动态规划算法就是一系列以空间换取时间的算法。

案例一

有n级台阶,一个人每次上一级或者两级,问有多少种走完n级台阶的方法。

你可能感兴趣的:(动态规划算法经典案例 JS)