0-1背包问题、最大连续子数组问题、最长公共子序列、最长公共子串、最小编辑距离、钢条切割、矩阵链乘 动态规划问题的一般步骤: 给出问题的表示,明确子问题 分析最优结构,构造递推公式 确定计算顺序,依次求解问题 记录决策过程,输出最优方案 0-1背包 动规方程: 用$p[i,c]$表示前i个物品在背包 ...
分类:
编程语言 时间:
2020-12-31 12:05:20
阅读次数:
0
网上讲最小编辑距离的文章有很多,但是看了一大堆,讲明白的实在是很少。 最小编辑距离指的是字符串A转化为字符串B的最小编辑次数,允许的操作有插入,删除,替换。 先来说一下插入删除操作,比如有hello,helo俩个字符串,前一个字符串减去一个l和后一个加上一个l,其实是没有区别的。那么把这个操作统称为 ...
分类:
其他好文 时间:
2020-09-18 00:31:20
阅读次数:
22
以leetcode上的一个题目为例子。 连接 解题思路: 举个例子。word1 = abcd word2=abce.将word1变为word2.假设我们均考虑到第4个字符,d!=e, 直接替换 也就是前三个字符需要的次数+1。 把d删除掉,让第三个字符c和word2的第四个字符匹配,在d的后边添加一 ...
分类:
其他好文 时间:
2020-07-13 15:26:01
阅读次数:
53
1 什么是编辑距离在计算文本的相似性时,经常会用到编辑距离(Levenshtein距离),其指两个字符串之间,由一个字符串转成另一个所需的最少编辑操作次数。在字符串形式上来说,编辑距离越小,那么两个文本的相似性越大,暂时不考虑语义上的问题。其中,编辑操作包括以下三种: 插入:将一个字符插入某个字符串 ...
分类:
编程语言 时间:
2020-02-28 14:09:02
阅读次数:
67
LinuxLinux进程调度算法Linux进程地址空间分布Linux内存管理方法,页面置换算法,逻辑地址和物理地址的转换在一台内存为2G的机器上,malloc(20G)会怎么样?new20G呢?进程和线程的区别,进程间通信方式解释孤儿进程,僵死进程,惊群效应IO模型,Select、Epoll和Poll的区别ET和LT的区别,需要注意什么计算机网络TCP三次握手四次挥手状态图,对应的POSIXAPI
分类:
编程语言 时间:
2020-02-26 23:00:08
阅读次数:
121
给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符删除一个字符替换一个字符示例 1: 输入: word1 = "horse", word2 = "ros"输出: 3解释: horse -> ro ...
分类:
其他好文 时间:
2019-11-05 21:31:55
阅读次数:
165
题目描述:给定两个单词word1和word2,计算出将word1转换成word2所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例1:输入:word1="horse",word2="ros"输出:3解释:horse->rorse(将‘h‘替换为‘r‘)rorse->ros
分类:
其他好文 时间:
2019-09-22 17:53:20
阅读次数:
77
最近看到一些动态规划的东西讲到莱文斯坦距离(编辑距离)的计算,发现很多都讲的不是很清楚,比较难理解,自己思考过后重新给大家讲解一下; ...
分类:
其他好文 时间:
2019-05-18 00:25:47
阅读次数:
133
题目描述 地址 : https://leetcode.com/problems/edit distance/description/ <! more 思路 使用 用来表示 的`0~i 1 word2 0~j 1`的最小编辑距离 我们可以知道边界情况: 、`dp[0][j] = j "" dp[0~i ...
分类:
编程语言 时间:
2019-02-08 18:32:04
阅读次数:
213
当前状态一定不能从后面的状态推出 解dp题步骤 1.定义dp数组 2.建立状态转移方程 3.确定初始状态 4.验证(循环顺序) 题目描述 对于两个字符串A和B,我们需要进行插入、删除和修改操作将A串变为B串,定义c0,c1,c2分别为三种操作的代价,请设计一个高效算法,求出将A串变为B串所需要的最少 ...
分类:
其他好文 时间:
2018-05-10 11:38:00
阅读次数:
165