- 博客(4)
- 收藏
- 关注
原创 常用的数据结构之弗洛伊德算法
弗洛伊德算法是解决一个顶点到图中一个顶点的最短路径问题。通常适用于一对顶点间的最小路径.。 void Floyd(Mgraph g,path[maxsize]){ int A[maxsize][maxsize]; for(int i=0;i<g.n;i++){ for(int j=0;j<g.n;j++){ A[i][j]=g.edges[i][j]; path...
2019-06-16 21:08:40 636
原创 动态规划之编辑距离
给定两个字符串,一个是字符串a,一个是字符串b。可以对字符串b进行增加元素,删除元素,或者将一个字符改成另一个字符,问最少可以进行多少步操作,将字符串b完全变成字符串a。 分析:其实编辑距离问题就是序列比对算法。其可以看作是Needle-wunsh算法的简化形式。通过引入打分矩阵进行操作。 下面我们进行具体的分析。当a[i-1]==b[j-1]时,我们直接让dp[i][j]=dp[i-1][j...
2019-06-12 21:13:01 184
原创 动态规划之回文串
题目:例如给定一个字符串:“trit",你只可进行插入任何一个字符,问最少插入多少个字符使之变成回文串? 例如本个例子只需要再插入一个r即可。 思路分析: 此题目一开始思索了很久,最后看了题解,才恍然大悟。该题应根据回文串的特性,进行倒着分析。即如果是回文串的话,那么这个串颠倒过来后,应该与原来字符串相等,即他两个的最大公共子序列的长度为该字符串的长度。那么,在原来字符串不是回文串的情况下,...
2019-06-04 21:06:07 906
原创 动态规划之删除最少的元素
问题描述 给定有 n 个数的 A 序列:A1,A2,A3…An 。对于这个序列,我们想得到一个子序列 Ap1,Ap2⋯Api⋯Apm(1≤p1< p2<⋯pi<⋯< pm≤n),满足 Ap1≥Ap2≥⋯≥Api≤⋯≤Apm 。从 A 序列最少删除多少元素,可以得到我们想要的子序列。 输入格式 第一行输入一个整数 n,代表 A 序列中数字的个数。第二个输入 n 个整数,...
2019-06-01 11:00:08 643
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人