
算法
文章平均质量分 91
AXIMI
这个作者很懒,什么都没留下…
展开
-
动态规划二(Dynamic Programming )
动态规划一 2.背包问题 给几个物品,物品有不同的重量和价格。一个背包有自己的限重,不能将所有的物品都装进背包,则怎么搭配才能用这个背包装进最多价值的物品,给出背包能带来的最大价值? 以下表格为例: 物品 重量 价值/美元 1 2 12 2 1 10 3 3 20 4 2 15 背包承重为5,则怎么选择可以获得最大价值的组合? 做背包问题只要填好下面的这个表...原创 2018-11-04 10:15:28 · 180 阅读 · 0 评论 -
动态规划一(Dynamic Programming)
1.引入 动态规划的思想是从顶向下、从最后到最初考虑; 码代码时从底向上、从头到尾开始写起。 1.1.给定一排硬币,面值不等,均大于0,则如何选择硬币,使得选择的硬币都不相邻,同时选择出来的硬币的总值最大? 从顶向下考虑: 假设计数到第n枚硬币时(就是已经讨论完到底要不要选取第n枚硬币后),当前选取的所有硬币的总价值是F[n]; 从选不选择最后一枚硬币考虑,有两种选择,第一种不选择最后一...原创 2018-11-03 18:59:19 · 359 阅读 · 0 评论 -
动态规划三(Dynamic Programming)--解决字符串匹配
动态规划三:最优查找树 要了解最优查找树首先要了解查找树。现在以一个例子说明什么是查找树: 给定50本英文书,如果想从里面找书,可以建立如下的一个二叉树, 给出n个键{a1,a2…an},对应的查找概率是{p1,p2,…pn},则要怎么构建一个最优查找树使得平均查找次数最低? 我们将平均查找次数称为查找代价C[1,n],其中1和n表示键的取值范围从1-n。 ...原创 2018-11-09 15:47:59 · 402 阅读 · 0 评论 -
马拉车算法(Manacher Algorithm)--用于计算最长回文子串
马拉车算法的目标是找到一串字符串中的最长回文子串,优点是时间复杂度为O(n) 现以寻找"cgbaabgk"中的最长子回文串(“gbaabg”)为例进行说明 算法过程(总共3步): 1.改造字符串结构: 字符坐标 0 1 2 3 4 5 6 7 8 9 10 11 12 13 char $ # g # b # a # a # b # k # 将原字符串&a原创 2018-12-24 10:35:27 · 616 阅读 · 0 评论 -
【排序】桶排序(Radix Sort)
桶排序 以对数组nums={50, 0,21, 11, 42, 12, 6,36, 27, 8}进行排序为例进行说明 首先将所有数按照个位数的大小从小到大排序。我们设置每个桶的步长为1,总共有10个桶,将所有的数都放在桶中后可以得到: 桶的标记 0 1 2 3 4 5 6 7 8 9 桶中的数字 50,0 21,11 42,12 6,36 27 8 将这些数重新存...原创 2019-02-21 14:43:41 · 932 阅读 · 0 评论