动态规划的基本思想是什么?
动态规划的基本思想是拆分子问题,记住过往,减少重复计算。
具体来说,动态规划是一种通过将原问题分解为相对简单的子问题的方式来求解复杂问题的方法。这些子问题常常有重叠子问题和最优子结构性质。动态规划的核心在于拆分子问题,记住过往,减少重复计算。与分治算法不同,动态规划的子问题是有关联的,需要进行记住过往的处理,这也是动态规划的动态性所在。
例如,在青蛙跳阶梯的问题中,青蛙可以一次跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个10级的台阶总共有多少种跳法。这个问题可以通过动态规划来解决,将问题拆分为子问题,即跳到第9级台阶的跳数和跳到第8级台阶的跳数,然后根据子问题答案反推,得出原问题解。