动态进阶指南:从基础到应用实例.pptx

动态规划-DynamicProgramming

动态规划处理的是一类可以被递归描述的问题

动态规划-DynamicProgramming

和一般递归问题不同,这类问题总往往有很多被重复计算的子结构

动态规划-DynamicProgramming

我们从底部向上构造整个解,使得所子问题计算都只有一次

functionfib(n){

leta=1,b=1

for(leti=2;i=n;i++){

[b,a]=[a+b,b]

}

returnb

}

缓存数据

动态规划-DynamicProgramming

但有时候问题没有那么简单,缓存数据可能是一个二维数组或者其他

例如:公共子序列问题

什么是子序列?

子序列,就是原序列不改变顺序,但是可以删除元素得到的序列。ABC有个8子序列:

A

B

C

AB

AC

BC

ABC

空字符串

为什么要求公共子序列呢?

ACGGTGTCGTGCTATGCTGATGCTGACTTATATGCTA

CGTTCGGCTATCGTACGTTCTATTCTATGATTTCTAA

LCS=CGTTCGGCTATGCTTCTACTTATTCTA

例子:lcs(ABCBDAB,BDCABA)

ABCBDAB

BDCABA

ABCBDAB

BDCABA

ABCBDAB

BDCABA

LCS长

文档评论(0)

1亿VIP精品文档

相关文档