Snowberg

 

随笔分类 -  Algorithms

动态规划——最长递增子序列
摘要:一,问题描述设L=<a1,a2,…,an>是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=<aK1,ak2,…,akm>,其中k1<k2<…<km且aK1<ak2<…<akm。求最大的m值。二,问题求解方法一:转化为LCS根据求LCS方法,将序列L按递增顺序排列,然后存放在数组M中,于是求序列L的最长递增子序列就转化成求序列L和M的LCS。方法二:动态规划直接求解(一)以坐标i结尾的序列的最长递增子序列和其[0,i-1]“前缀”的最长递增子序列有关,设C[i]保存“以i结尾的最长递增子序列”的长度,若i=0,则 C[i] 阅读全文

posted @ 2011-12-14 21:28 Snowberg 阅读(399) 评论(0) 推荐(0)

动态规划
摘要:终于来到了算法设计思想中最难,也最有趣的这部分,在去年的google笔试中,7道算法设计题有2道动态规划(Dynamic Programming)。看了这么久的算法,这部分也是唯一感觉到了比较难的地方,从这篇文章开始,将花连续的篇幅来讨论一些动态规划的问题。这包括书上介绍过的计算二项式系数,Warshall算法求传递闭包,Floyd算法求完全最短路径,构造最有二叉查找树,背包问题和记忆功能。也包括一些其他问题的解题报告(动态规划确实很难,对这一章的内容,我将搜索一些其他类型的问题来写解题报告,以真正的理解动态规划),例如矩阵连乘,最长公共子列,等等。---------------------- 阅读全文

posted @ 2011-10-21 14:38 Snowberg 阅读(562) 评论(0) 推荐(0)

Suffix Tree
摘要:Suffix Tree 学习笔记 IAuthor:IfDate:2010/10/3 9:34:06Copyright:Ifsome rights reserved,published under licenseCreative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported.Contents1Prologue2Notations3What is a Suffix Tree4What Can It Do4.1Longest Common Substring4.2Exact String Matching4.3Ziv-Lempel 阅读全文

posted @ 2011-10-21 14:31 Snowberg 阅读(4547) 评论(0) 推荐(2)

导航