什么是动态规划?
动态规划(英语:Dynamic programming,简称 DP),是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。来自维基百科。
简单的来说,动态规划就是将一个问题分解为若干个子问题,将子问题解决并保存,然后在解决大问题。也就是拆解问题,记住保存,减少重复的计算量。
其实leetcode的原题https://mp.csdn.net/mp_blog/creation/editor/122683439
就很好的反映出了这一个思想,当你使用递归时,他会超出时间限制,就是因为当你使用递归,你无限的将一个子问题重复的计算,这也就是为什么递归的效率十分低下的原因。而这道题用动态规划就很简单了。