­

数据结构短视频 | 什么是动态规划

  • 2019 年 12 月 23 日
  • 笔记

前面,我们使用了数组、二分查找和分治算法解决了部分题目之后,还有更多的题目等着去挖掘。

我精力比较有限,不一定要把某数据结构的序列题目全部做完。如果你对某一个数据结构情有独钟的话,可以考虑接着去做下去,去发现更大的有趣的题目。

接下来,我们就做动态规划。

什么是动态规划?这可能属于分治算法。

因为动态规划用到了递归。。。。。。

了解动态规划之前,我们先了解什么是斐波那契数列。

如果看时间复杂度的话,发现这程序计算一个数字需要重复的计算。

比如n是5,需要计算4和3;计算4的话就需要计算3和2;计算3的话需要计算2和1……

可以发现5和4计算一次,3的话需要计算两次,浪费了一次资源,而2的话需要计算多次,就浪费了多次计算的资源。造成时间复杂度比较大。

所以需要考虑每一次需要计算的和计算的值保存到集合中,下面就是动态规划的代码:

动态规划就是:将原问题拆解成若干子问题,同时保存子问题的答案,使得每个子问题只求解一次,最终获得原问题的答案。

最后动态规划短视频:

——END——