01.实战动态规划_第1页
01.实战动态规划_第2页
01.实战动态规划_第3页
01.实战动态规划_第4页
01.实战动态规划_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、动态规划实战,七月算法曹鹏2015年4月13日,2/13,提纲,二次元阵列路径最小和最大子阵列和(最短)编辑距离总结和思考,例1二次元阵列路径最小和m行n列的二次元阵列,各要素为非负值,从左上走到右下角(Leetcode 64 )构想m行, 列举n列. (m n -2 )步骤(m 1)步骤下、(N1)步骤右、任意选择、通道条数总共为C(m n - 2,m -1 ),列举是万能的! 实际上做不到,3/13,例1继续,dp? dpij是从左上到(I,j )的最小值dpij=min (打印精度1j,dpij 1) aij上从打印精度1j AIJ左下到dpij 1 aij初始值(下标从0开始) dp0

2、0=a 00dp 0j0=dp0j1a 0jdpi00=打印精度10ai 0复杂度: 4/13,示例1继续2,空间优化节省一维度dpij是与打印精度1j和dpij 1相关联的非空部分阵列(连续的数目),其中对于每个I,前向循环j之前的dpj 1是“新的”,而dpj仍然是旧的dpj=min(dpj 1,dpj)aii 构想1暴力列举,起点i0.n 1,终点j=in 1,和i.j,时间复杂度O(n3)构想2聪明的时间复杂度O(n2)构想3分治分: 2个基本上等长的子群,分别求出T(n/2 )合:跨中心点的最大子群(列举) endHere=max(endHere ai,ai )结果answer=ma

3、x(endHere,answer )、7/13、示例2继续2、思维方法5另一线性枚举定义Sumi=a0a1a2ai=0和-1=0则0=I=jai1aj i 1必须取前一个最小的sum值,用一个变量记录sum的最小值时间O(n )、空间O(1)、8/13、例3编辑距离,给出两个字符串s和t,求出使s为t所需的最小操作次数。 操作包括在任意位置添加字符、减少任意字符或修改任意字符。 (Leetcode 72 )构想bfs主题有“最小”字符,符合bfs关牛鼻子字:上界len(S) len(T )实际上不能执行构想dp,删除操作很麻烦,9/13, 例3如果继续不同,则2个特殊字符 与s位置不对应的 增加字符t位置 意味着删除字符使减分最小,例3继续2,dpij表示s的最初的I位置和t的最初的j位置对齐的最小分dpij=miij,dpij)打印精度1j1same (I, j )删除对应的第s个字符和第t个字符的排列打印精度1j 1对应的第s个字符和-排列,即删除第s个字符打印精度J1对应的第t个字符和-排列,即在s上加上该字符的初始值dp0j=j而得到的j 0)时空复杂度O(length(S) * length(T ) ) 空间优化在一维上省略了每个I,正向循环j注意保存堆打印精度j 1的j 1已经是“新值”,11/13,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论