一个动态规划问题有两个特征:
1问题具有最优子结构
2有大量的重复子问题
而递归与DP的不同在于第二点
这些重复的子问题,DP算法将其结果保存下来,等下一次又要计算该子问题时,直接调用已计算好的
而递归却不是这样,它会一遍又一遍地计算这些重复的子问题,从而效率狂降
其实DP也有递归的形式,主要用在无效的子问题比较多的时候
1问题具有最优子结构
2有大量的重复子问题
而递归与DP的不同在于第二点
这些重复的子问题,DP算法将其结果保存下来,等下一次又要计算该子问题时,直接调用已计算好的
而递归却不是这样,它会一遍又一遍地计算这些重复的子问题,从而效率狂降
其实DP也有递归的形式,主要用在无效的子问题比较多的时候