算法
文章平均质量分 81
算法
wyatt007
这个作者很懒,什么都没留下…
展开
-
动态规划入门
动态规划是一种在数学和计算机科学中使用的,用于求解包含重叠子问题的最优化问题的方法。其基本思想是,将原问题分解为相似的子问题,在求解的过程中通过子问题的解求出原问题的解。动态规划的思想是多种算法的基础,被广泛应用于计算机科学和工程领域。比较著名的应用实例有:求解最短路径问题,背包问题,项目管理,网络流优化等。概述动态规划在查找有很多重叠子问题的情况的最优解时有效。它将问题重新组合成子问题。原创 2016-04-29 16:31:40 · 2882 阅读 · 0 评论 -
KMP算法
1.kmp算法的原理举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。1.首先,字符串"BBC ABCDAB ABCDABCDAB原创 2016-04-28 11:54:01 · 1371 阅读 · 0 评论 -
trie树——字典树
Trie树,又称单词查找树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。 字典树与字典很相似,当你要查一个单词是不是在字典树中,首先看单词的第一个字母是不是在字典的第一层,如果不在,说明字典树里没原创 2016-04-28 10:25:07 · 256 阅读 · 0 评论 -
动态规划
前言_我们遇到的问题中,有很大一部分可以用动态规划(简称DP)来解。 解决这类问题可以很大地提升你的能力与技巧,我会试着帮助你理解如何使用DP来解题。 这篇文章是基于实例展开来讲的,因为干巴巴的理论实在不好理解。注意:如果你对于其中某一节已经了解并且不想阅读它,没关系,直接跳过它即可。简介(入门)什么是动态规划,我们要如何描述它?动态规划算法通常基于一个递推原创 2016-03-16 21:04:05 · 354 阅读 · 0 评论 -
快速求幂算法
快速求正整数次幂快速求正整数次幂,当然不能直接死乘。举个例子:3 ^ 999 = 3 * 3 * 3 * … * 3直接乘要做998次乘法。但事实上可以这样做,先求出2^k次幂:3 ^ 2 = 3 * 33 ^ 4 = (3 ^ 2) * (3 ^ 2)3 ^ 8 = (3 ^ 4) * (3 ^ 4)3 ^ 16 = (3 ^ 8) * (3 ^原创 2015-11-14 20:54:42 · 419 阅读 · 0 评论 -
枚举
1、为什么要用enum 写程序时,我们常常需要为某个对象关联一组可选alternative属性.例如,学生的成绩分A,B,C,D等,天气分sunny, cloudy, rainy等等。 更常见的,打开一个文件可能有三种状态:input, output和append. 典型做法是,对应定义3个常数,即: const int input = 1;原创 2015-11-07 15:38:19 · 352 阅读 · 0 评论