一,问题描述 给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。比如字符串1:BDCABA;字符串2:ABCBDAB 则这两个字符串的最长公共子序列长度为4,最长公共子序列是:BCBA 二,算法求解 这是一个动态规划的题目。对于可用动态规划求解的问题 ...
分类:
其他好文 时间:
2018-07-29 15:11:31
阅读次数:
159
案例 & 8195;假如我们现在在设计一个英文翻译程序,要把英文翻译成汉语,显然我们需要知道每个单词对应的汉语意思。我们可以建立一颗二分搜索树来实现英语到汉语的关联。为了更快速地翻译,我们可以使用AVL树或者红黑树使每次查询的时间复杂度Θ(lgn),实际上对于字典翻译程序来说这么做存在一个问题,比如 ...
分类:
编程语言 时间:
2018-07-20 21:15:24
阅读次数:
171
问题 给定n种物品和一个背包,物品(1V(n-1,C), 则表明第n个物品被装入背包中,前n-1个物品被装入容量为C-wn的背包中;否则,第n个物品没有被装入背包中,前n-1个物品被装入容量为C的背包中,依次类推,直到确认第一个物品是否被装入背包中 代码C++实现 // dp_01Knapsack.... ...
分类:
其他好文 时间:
2018-06-22 17:53:50
阅读次数:
203
题目描述 一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远。每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5,就代表袋鼠下一跳最多能够跳5米,如果为0,就会陷进去无法继续跳跃。河流一共N米宽,袋鼠初始位置就 ...
分类:
其他好文 时间:
2018-06-06 21:59:35
阅读次数:
135
问题链接 "LeetCode 32. Longest Valid Parentheses" 题目解析 给出只包含左右括号的字符串,返回最长的括号匹配字符串长度。 解题思路 括号匹配问题一般借助 栈 ,便于理解。定义 $start$ 记录合法字符串的起始位置,遍历字符串: 当遇到左括号,则把其索引压入 ...
分类:
其他好文 时间:
2018-03-29 21:22:32
阅读次数:
154
1.RMQ 即区间最值查询,如给定一个序列A,让你求形如[1,4]或[3,8]最值问题,用动态规划求解 设dp[i][j]表示从i到2^j的最值,那么dp[i][0]=a[i], dp[i][j]可划分成dp[i][j-1]与dp[i][i+(1<<(j-1))]两部分 然后在其中取最大值 ,满足最 ...
分类:
其他好文 时间:
2018-01-28 12:50:34
阅读次数:
168
1)原始信息存储 原始信息有层数和塔数中的数据,层数用一个整形变量n存储,数塔中的数据用二维数组data,存储为如下下三角阵: 9 12 15 10 6 8 2 18 9 5 19 7 10 4 16 2)动态规划过程存储 d[n][j]=data[n][j] 动态规划的倒推过程: i=n-1,n- ...
分类:
其他好文 时间:
2017-10-25 23:34:49
阅读次数:
153
求最长公共子序列,比较出两个字符串的最长的序列。用动态规划求解 1 #include 2 #define N 10005 3 #define mem(a) memset(a,0,sizeof(a)) 4 5 using namespace std; 6 int k[N][N]; 7 stack s;... ...
分类:
其他好文 时间:
2017-10-05 21:59:33
阅读次数:
154
1.最大子段和的问题描述 2.动态规划的求解: 3.优化函数的递推方程 4.动态规划求解伪码 5.动态规划求解的小结: 动态规划的代码: ...
分类:
其他好文 时间:
2017-10-05 12:19:09
阅读次数:
119