动态规划求最长公共子序列的js实现
动态规划类似于递推算法,典型的动态规划模型–斐波那契数列,可以用递归来实现,但是耗费内存空间比较大,如果不做任何缓存优化,计算1000个数的时候基本就很耗费时间了,尽管可以在递归的过程中,用一个cache数组缓存已经算出的值,但是函数的嵌套带来的内存开销也会影响,es6的尾调用优化很好的解决了函数嵌套带来的内存溢出问题。但是真正的精髓算法还是属于动态规划。
最长公共子序列也是如此,直接看代码吧。
1 | function lcs(word1, word2) { |
个人小站
动态规划类似于递推算法,典型的动态规划模型–斐波那契数列,可以用递归来实现,但是耗费内存空间比较大,如果不做任何缓存优化,计算1000个数的时候基本就很耗费时间了,尽管可以在递归的过程中,用一个cache数组缓存已经算出的值,但是函数的嵌套带来的内存开销也会影响,es6的尾调用优化很好的解决了函数嵌套带来的内存溢出问题。但是真正的精髓算法还是属于动态规划。
最长公共子序列也是如此,直接看代码吧。
1 | function lcs(word1, word2) { |