动态规划
动态规划:编辑距离问题
编辑距离是字符串处理中的经典问题,衡量将一个字符串变成另一个字符串所需的最少操作数。 给定两个字符串 A 和 B,求出将 A 变为 B 的最小操作数。
每次只允许一种操作,每个操作的 “代价” 为 1。
插入一个字符(Insert)
删除一个字符(Delete)
替换一个字符…
算法:最长公共子序列问题
给定两个字符串 A 和 B,找出它们的 最长公共子序列。 子序列:可以不连续,但保持原顺序
公共子序列:同时是 A 和 B 的子序列
示例:
Copy
A = "ABCBDAB"
B = "BDCAB"
LCS = "BDAB" 或 "BCAB"(都长度为4)
文件…
算法:最长上升子序列问题
给定一个给定一个长度为 n的整数序列 A=[a_1, ..., a_n],求其中一个子序列(不要求连续),使得其元素严格递增,且长度最长。有时还要求恢复出这个最长子序列。 案例:
Copy
A = [10, 9, 2, 5, 3, 7, 101, 18]
LIS = [2, 3…
算法:最大子数组和(最大子段和)问题
给定一个包含正数和负数的一维数组 A[1..n],寻找一个连续子数组 A[i..j],使得 子数组的元素和最大,即求:
\max _{1\leq i\leq j\leq n} \sum_{k=i}^j A[k]
并返回这个最大值。有时还需要返回这个子数组的起止位置 i, j…