随笔分类 - 数学
摘要:排列采用递归的方式进行,算法如下: public class Lesson7_2 { /** * @param rest-目前未排列的数据,has-保存已经排列的数据及其顺序 * @return void * @Description: 使用函数的递归(嵌套)调用,找出所有可能的排列顺序 */ pu
阅读全文
摘要:作业题: https://time.geekbang.org/column/article/76481 利用树结构存储字典表,这里没有学习下一节(下一节的实现肯定更加高效) 这里只是用最简单的方法来实现(时间和空间复杂度都没有考虑) 代码如下: public class Lesson11_1 { /
阅读全文
摘要:编辑距离的概念,百度一下你就知道。也有很多文章有所介绍 https://blog.csdn.net/chichoxian/article/details/53944188 做动态规划的题就是根据表格,找出规律,推导出状态转移方程 比如编辑距离的状态转移方程如下: d[i+1, j+1] = min(
阅读全文
摘要:KMP算法是在字符串M中查找是否包含字符串N,存在返回字符串M匹配的字符首位置,将复杂度O(mn)降为O(m+n) 要看对KMP算法的理解,请参考字符串匹配的KMP算法 要看其中对匹配表的理解,请参考 KMP算法最浅显理解——一看就明白 下面是基于算法整理的Java代码: public class
阅读全文
摘要:凑齐钱的最小张数概念: 比如只有2块、3块和5块钱若干,问凑齐100块钱最小需要几张钱能凑齐?(20张5块的,所以是20张) 前面一篇求解编辑距离时,有现成的状态转移方程,可是这种凑齐面值的没有现成的公式,只能自己去推导。 当然我们可以利用求余数求解,凑齐98块,需要98/5=19…3,所以为19张
阅读全文
摘要:组合算法也是使用递归算法产生组合结果 public class Lesson8_1 { /** * @Description 组合算法 * @param has 已经选中要组合的数据 * @param rest 剩余未(待)组合的数据 * @param n 要选出的个数 * @param resul
阅读全文
摘要:直接上代码: public class Lesson12_1 { /** * @Description: 前缀树的结点 */ class TreeNode { public char label; // 结点的名称,在前缀树里是单个字母 public HashMap<Character, TreeN
阅读全文

浙公网安备 33010602011771号