
动态规划Dynamic Programming
文章平均质量分 66
石圣
移动游戏开发从业者,同时对Android开发有一定的研究。
展开
-
[动态规划-1] 最长递增子序列-Longest Increasing Subsequence
问题描述:求一个一维数组arr[i]中的最长递增子序列的长度,如在序列1,-1,2,-3,4,-5,6,-7中,最长递增子序列长度为4,可以是1,2,4,6,也可以是-1,2,4,6。问题分析:我们用L(i)表示从arr[0]---arr[i]的最长递增子序列的长度值,那么:L(i) = 1 + Max(L(j)),当满足j L(i) = 1,当不满足上面条件时,也就是说a原创 2013-09-11 10:25:16 · 2082 阅读 · 0 评论 -
[动态规划-3] 编辑距离-Edit Distance
问题描述:我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为:1.修改一个字符(如把“a”替换为“b”)。2.增加一个字符(如把“abdd”变为“aebdd”)。3.删除一个字符(如把“travelling”变为“traveling”)。比如,对于“abcdefg”和“abcdef”两个字符串来说,我们认为可以通过增加/减少一个“g“的方式来达到目的。上面的原创 2013-09-11 11:34:42 · 1763 阅读 · 0 评论 -
[动态规划-0] 前言-我的动态规划学习之路
刚开始听说动态规划的时候觉得很难、很复杂,所以不敢轻易的去触碰这块骨头,遇到很多问题需要求解的时候我都尽量不去用动态规划解决,因为我真的是看不懂,这里顺便说一下,我原本是电子专业的,对算法啊啥的一窍不通,但是最近找工作,发现笔试这一关是必须要有那么几个算法题,而分数最多的一个基本上是与动态规划有关的,所以把算法搞懂是必须的,之前看过《编程之美》、《剑指offer》等书籍,但是还是没有养成一种独立的原创 2013-09-11 09:58:59 · 3217 阅读 · 0 评论 -
[动态规划-2] 最长公共子序列-Longest Common Subsequence
问题描述:给定两个字符串,求两个数组的最长公共自序列,LCS。如“ABCDGH” 和 “AEDFHR”的最长公共子序列是 “ADH” ,长度为3; “AGGTAB” 和 “GXTXAYB”的最长公共子序列是 “GTAB” ,长度为4.问题分析:假设两个字符串分别为A[m],B[n],则我们用L[i,j]来表示子序列A[0]--A[i]和子序列B[0]--B[j]的最原创 2013-09-11 11:14:00 · 2029 阅读 · 1 评论 -
[动态规划-4] 合并数
题目:求正数数组内和为指定数字的合并总数比如num = [5, 5, 10, 2, 3],给定的合并值为 15 :有4种 : {5 + 10, 5 + 10, 5 + 5 + 2 + 3, 10 + 2 + 3}分析:这实际上是网易有道笔试题之一,我觉得我笔试通过主要就是依靠这个题目,因为其他的做的比较一般。这道题使用动态规划思想,大家看如下的状态转移方程:原创 2013-10-21 11:49:10 · 2248 阅读 · 14 评论