随笔分类 -  算法

摘要:题目: 给定两个字符串str1和str2,在给定三个整数ic,dc和rc,分别代表插入、删除和替换一个 字符,返回将str1编辑成str2的最小代价。 解题方法: 动态规划。首先生成大小为(M+1)X(N+1)的矩阵dp。 假设str1="av=b12cd3", str2="abcdf"。dp[i] 阅读全文
posted @ 2018-04-30 14:54 游鸿 阅读(589) 评论(0) 推荐(0)
摘要:解题方法: 首先生成动态规划表dp,生成规则如下: 对于两个字符串str1和str2,dp[i][j]表示将str1[i]和str[j]作为公共子串最后一个字符的长度 非第一行,第一列: 如果str1[i]==str2[j],则dp[i][j] = dp[i-1][j-1]+1 如果str1[i] 阅读全文
posted @ 2018-04-29 17:13 游鸿 阅读(1651) 评论(0) 推荐(0)
摘要:以下解题方法来自于他人! 题目: 一副牌,序号从1到n,每次从牌堆顶部拿出一张牌放在桌子上,并将下一张牌放到牌堆地下,依次循环,最终在桌子上的牌从1到n的有序。设计程序实现 1、模拟这个过程: 建立一个队列,将数字1到n依次入队,作为牌堆中从牌堆顶部到最后一张牌的次序。按照题意从数组中取数,比如拿出 阅读全文
posted @ 2018-04-28 01:41 游鸿 阅读(1303) 评论(0) 推荐(0)
摘要:题目: 给定两个字符串str1和str2,返回两个字符串的最长公共子序列 举例: str1 = "1A2C3D4B56" str2 = "B1D23CA45B6A" 它们的最长公共子序列为:"123456" 或 "12C4B6" 解题方法: 经典的动态规划方法: 根据状态方程可以得到由str1和st 阅读全文
posted @ 2018-04-28 00:23 游鸿 阅读(992) 评论(0) 推荐(0)
摘要:可以得到该方法的时间复杂度为O(n2) 阅读全文
posted @ 2018-04-25 13:17 游鸿 阅读(707) 评论(0) 推荐(0)