常用算法
超人不会飞007
胖子会飞?
展开
-
动态规划算法(这个算法重点在于如何拆分问题,也就是找到你解决问题的有效子问题)
一.什么是动态规划?动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一...原创 2019-04-10 11:54:08 · 1348 阅读 · 0 评论 -
KMP匹配算法
以前那个时候大二,想了几天都没有想明白,现在看看这个算法其实很简单。 首先如果我们用最简单的方式去匹配字符串,用模式串与主串一个一个比较,如果匹配不上,那么我们要移动一个单位从头开始一个一个比较,直到匹配成功或者匹配玩所有的目的字符串。 仔细观察会发现一个问题,其实有很多时候我们不一定每次只移动一个位置。但是我们怎么判断需要移动多少个单...原创 2019-04-23 21:58:54 · 329 阅读 · 0 评论 -
解释器模式代码举例(java语言版)
前言:解释器模式的意图给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。优点:1、可扩展性比较好,灵活。 2、增加了新的解释表达式的方式。 3、易于实现简单文法。缺点:1、可利用场景比较少。 2、对于复杂的文法比较难维护。 3、解释器模式会引起类膨胀。 4、解释器模式采用递归调用方法。JAVA语言版解释器模式创建解释器接口:public in...原创 2019-04-29 17:12:55 · 629 阅读 · 0 评论