第二百一七章 记忆化

2019-04-06 作者: 程序小猿
第二百一七章 记忆化

听到经理的问题,杨成没有急于作答。

他回想起以前刚来到代码战争时做的第一个任务。

求解斐波那契数列的第n项。

当时他是如何对分治法做优化的呢?

“使用缓存,或者说是记忆化!”

杨成顿时脱口而出。

函数每次调用时,可以将先前的操作结果记录在某个对象里面,从而避免无谓的重复运算。这种优化被称作“记忆化”。

在这个问题,如果给递归算法使用了这种技术。

当在递归执行第一次,遇到一个子问题时,就计算它的解,并且记忆在对象中。

以后再遇到重复的子问题,无须再计算,直接读取对象中的记忆。

这样就能大大地减少运算量!

带着这样的思路,杨成开始优化已有的程序。

很快,经理便看到了一个全新版的算法。

他看到一行行测试用例通过。

“小伙子不错!”

经理拍拍他的肩膀。

“对已有的代码做改动,记忆化是可行的”。

“你还可以尝试一下动态规划的思路,它无须递归的代价,所以理论上效率会更高”。

关闭