
算法
Fly_Fly_Zhang
初学java
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法-Manacher算法 / 马拉车算法(Java实现)
Manacher算法:也叫 “马拉车”算法。Manacher算法的应用范围要狭窄得多,但是它的思想和拓展kmp算法有很多共通支出,所以在这里介绍一下。Manacher算法是查找一个字符串的最长回文子串的线性算法。什么是回文串:所谓回文串,简单来说就是正着读和反着读都是一样的字符串,比如abba,noon等等,一个字符串的最长回文子串即为这个字符串的子串中,是回文串的最长的那个。计算回文串的...原创 2019-03-24 18:44:13 · 922 阅读 · 1 评论 -
算法-回溯算法-子集树(装载问题/0-1背包问题)
什么是解空间:解空间就是问题所有解的可能取值构成的空间,一个问题的解往往包含了得到这个解的每一步,就是对应解空间树中一条从根节点到叶子结点的路径。回溯算法:在问题的解空间树中,按深度优先策略,从根节点出发搜索解空间树,算法搜索至解空间的任意节点时,先判断该节点是否包含问题的解,若不包含则跳过对以该节点为根节点的子树的搜索,逐层向其祖先节点回溯。否则进入该子树,继续按根深度优先搜索。子集树:...原创 2019-07-14 18:30:35 · 2478 阅读 · 1 评论 -
算法-动态规划(硬币数量/最长子序列/最长连续子序列/三角数组最大和)
算法描述通过把原问题分解为相对简单的子问题来求解复杂问题。动态规划常常适用于有重叠子问题和最优子结构性质的问题。算法总体思想动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题与分治法的区别在于:适用于动态规划算法求解的问题,经分解得到的子问题往往不是互相独立的;若用分治法求解,则分解得到的子问题数目太多,导致最终解决原问题需指数时间, 原因在于:虽然子问题的数目常常只...原创 2019-07-21 12:23:28 · 672 阅读 · 0 评论